01:13
alexshendi has joined #picolisp
01:33
andyjpb has quit [Ping timeout: 260 seconds]
02:56
orivej has quit [Ping timeout: 240 seconds]
03:09
pierpal has quit [Quit: Poof]
03:10
pierpal has joined #picolisp
03:36
pierpal has quit [Read error: Connection reset by peer]
03:38
alexshendi has quit [Read error: Connection reset by peer]
04:25
pierpal has joined #picolisp
04:32
pierpal has quit [Ping timeout: 240 seconds]
05:59
freeemint has joined #picolisp
06:28
rob_w has joined #picolisp
06:33
freeemint has quit [Remote host closed the connection]
06:34
freeemint has joined #picolisp
07:22
<
tankf33der >
morning
07:22
<
tankf33der >
i did it, compiled with sanitizer
07:22
<
Regenaxer >
Hi tankf33der
07:22
<
Regenaxer >
What is sanitizer?
07:23
<
tankf33der >
this one:
07:23
<
tankf33der >
Enable AddressSanitizer, a fast memory error detector. Memory access instructions are instrumented to detect out-of-bounds and use-after-free bugs.
07:23
<
tankf33der >
-fsanitize=address
07:23
<
tankf33der >
gcc feature
07:24
<
Regenaxer >
I don't think that stack overflows
07:26
<
Regenaxer >
in byteSym() ?
07:26
<
tankf33der >
yea, top call of the stack
07:27
<
Regenaxer >
byteSym does not allocate anything on the stack
07:27
<
Regenaxer >
What does it
*really* check?
07:30
<
Regenaxer >
Uh, "currently implemented in Clang" ;)
07:30
<
tankf33der >
when compiled it wraps access to variables and etc and check if all ok
07:30
<
tankf33der >
gcc have for many years too.
07:30
<
Regenaxer >
I'm sure byteSym() is not wrong
07:31
<
Regenaxer >
and surely no stack-buffer-overflow
07:33
<
Regenaxer >
This example makes sense:
07:33
<
Regenaxer >
int main(int argc, char **argv) {
07:33
<
Regenaxer >
return stack_array[argc + 100]; // BOOM
07:33
<
Regenaxer >
stack_array[1] = 0;
07:33
<
Regenaxer >
int stack_array[100];
07:33
<
Regenaxer >
But not byteSym()
07:34
<
tankf33der >
this is gcc 5
07:34
<
tankf33der >
hard to find 32 bit linux with modern gcc and sanitizers enabled.
07:35
<
Regenaxer >
It does not work for asm code?
07:35
<
tankf33der >
only c and c++
07:35
<
Regenaxer >
makes no sense
07:35
<
tankf33der >
this is undefined sanitizer run
07:35
<
Regenaxer >
C is static, but overflow checks must be dynamic
07:36
<
Regenaxer >
This is also nonsense: left shift of 1 by 31 places cannot be represented in type 'int'
07:36
<
Regenaxer >
It can, it
*must* here to detect sign change
07:37
<
Regenaxer >
Sanitizer seems to be a stupid tool
07:37
<
tankf33der >
only against picolisp
07:38
<
Regenaxer >
Also, I think there is even no shift by 31
07:38
<
Regenaxer >
in line 64 of big.c
07:38
<
tankf33der >
good try
07:39
<
Regenaxer >
it is a static definition:
07:39
<
Regenaxer >
#define OVFL ((1<<BITS-1))
07:39
<
Regenaxer >
Not at runtime
07:40
<
Regenaxer >
and 'n' is unsigned
07:40
<
Regenaxer >
So no problem anywhere
07:55
freeemint has quit [Ping timeout: 240 seconds]
08:54
freeemint has joined #picolisp
09:06
andyjpb has joined #picolisp
09:07
pierpal has joined #picolisp
09:11
xificurC has joined #picolisp
09:18
freemint_ has joined #picolisp
09:22
freeemint has quit [Ping timeout: 245 seconds]
09:25
rob_w has quit [Read error: Connection reset by peer]
09:25
rob_w has joined #picolisp
09:49
<
tankf33der >
i've make a huge progess
09:49
<
tankf33der >
i've make a huge progress
09:50
<
tankf33der >
now pil32 with sanitize=address pass builtin tests (without "@test/src/main.l")
09:50
<
tankf33der >
with gcc 8.1.1
09:50
<
tankf33der >
latest ever.
09:50
<
tankf33der >
latest stable ever.
10:01
<
tankf33der >
but "undefined behavior" sanitize still dont understand shifting.
10:01
<
tankf33der >
issue closed.
10:01
<
tankf33der >
i'm happy now.
10:03
<
Regenaxer >
Cool! :)
10:05
<
tankf33der >
src/main.l is not issue too, lets say pil32 full passed address sanitize
10:06
<
tankf33der >
picolisp call itself in tests and sanitize kills itself and aborting.
10:44
orivej has joined #picolisp
12:20
freemint_ has quit [Quit: Leaving]
13:08
pierpal has quit [Quit: Poof]
13:09
pierpal has joined #picolisp
14:59
pierpal has quit [Quit: Poof]
15:00
pierpal has joined #picolisp
15:01
rob_w has quit [Remote host closed the connection]
16:14
alexshendi has joined #picolisp
16:39
alexshendi has quit [Ping timeout: 256 seconds]
16:55
<
beneroth >
haha, sounds interesting and a bit funny, tankf33der
16:56
<
beneroth >
thanks for looking into this!
17:02
grp has joined #picolisp
17:45
alexshendi has joined #picolisp
18:22
alexshendi has quit [Read error: Connection reset by peer]
18:49
cess11 has joined #picolisp
18:50
cess11 has quit [Client Quit]
18:54
alexshendi has joined #picolisp
19:01
cess11 has joined #picolisp
19:28
alexshendi has quit [Read error: Connection reset by peer]
19:30
pierpal has quit [Ping timeout: 260 seconds]
19:31
pierpal has joined #picolisp
19:58
xifi has joined #picolisp
20:11
pierpal has quit [Quit: Poof]
20:12
pierpal has joined #picolisp
20:21
styx has joined #picolisp
20:34
styx has quit [Ping timeout: 260 seconds]
21:51
xifi has quit [Quit: WeeChat 2.1]
23:26
grp has quit [Quit: box shutting down...]
23:59
andyjpb has quit [Ping timeout: 256 seconds]