Hi,
This is what happens when I try to build XEmacs 21.4.24 with the
address sanitizer enabled.
This is the relevant ./configure switch:
'--cflags=-std=gnu89 -g -fsanitize=address -fno-omit-frame-pointer'
Dumping under the name xemacs
=================================================================
==56900==ERROR: AddressSanitizer: global-buffer-overflow on address
0x0001008b8da8 at pc 0x000100cba91a bp 0x7fff5fbf8110 sp
0x7fff5fbf78c8
READ of size 48 at 0x0001008b8da8 thread T0
#0 0x100cba919 in __asan_memcpy
(libclang_rt.asan_osx_dynamic.dylib:x86_64+0x50919)
#1 0x10015534c in pdump_dump_data dumper.c:634
#2 0x100154cab in pdump_scan_by_alignment dumper.c:828
#3 0x100153e8a in pdump dumper.c:1060
#4 0x1000fc22d in Fdump_emacs emacs.c:3217
#5 0x100100189 in Feval eval.c:3335
#6 0x100102f17 in Fprogn eval.c:775
#7 0x1000ffa3d in Feval eval.c:3308
#8 0x100102b83 in Fif eval.c:691
#9 0x1000ffa3d in Feval eval.c:3308
#10 0x100101e6c in Feval eval.c:3414
#11 0x1005312e7 in readevalloop lread.c:1449
#12 0x10052c86b in Fload_internal lread.c:737
#13 0x1001007a6 in Feval eval.c:3335
#14 0x10010d82b in condition_case_1 eval.c:1652
#15 0x10007f7cf in top_level_1 cmdloop.c:206
#16 0x10010c69b in internal_catch eval.c:1318
#17 0x10007ebec in initial_command_loop cmdloop.c:285
#18 0x1000f2d84 in xemacs_21_4_24_i386_apple_darwin14_5_0 emacs.c:2460
#19 0x1000fa5b5 in main emacs.c:2829
#20 0x7fff8818b5c8 in start (libdyld.dylib:x86_64+0x35c8)
0x0001008b8da8 is located 0 bytes to the right of global variable
'guts_of_unbound_marker' defined in 'symbols.c:3238:40' (0x1008b8d80)
of size 40
SUMMARY: AddressSanitizer: global-buffer-overflow
(libclang_rt.asan_osx_dynamic.dylib:x86_64+0x50919) in __asan_memcpy
Shadow bytes around the buggy address:
0x100020117160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x100020117170: 00 00 f9 f9 f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9
0x100020117180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9
0x100020117190: f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
0x1000201171a0: 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9
=>0x1000201171b0: 00 00 00 00 00[f9]f9 f9 f9 f9 f9 f9 00 00 00 00
0x1000201171c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1000201171d0: f9 f9 f9 f9 00 00 00 00 00 00 00 00 01 f9 f9 f9
0x1000201171e0: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
0x1000201171f0: 00 00 00 00 f9 f9 f9 f9 00 00 00 00 00 00 00 00
0x100020117200: 00 00 00 00 f9 f9 f9 f9 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==56900==ABORTING
--
Johann
I'm not from the internet, I just work there.