ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
I think should limit ch (char instead of int) one byte, or it use alpha table in glibc,which may cause outbound read in inline code glibc
asan output
==47845==ERROR: AddressSanitizer: SEGV on unknown address 0x7ffff6b201d4 (pc 0x55555556be17 bp 0x7fffffffde20 sp 0x7ffffffddcc0 T0)`
==47845==The signal is caused by a READ memory access.
#0 0x55555556be16 in scan_file /home/tim/codedoc-addr/codedoc.c:2903
#1 0x555555566b56 in main /home/tim/codedoc-addr/codedoc.c:488
#2 0x7ffff660eb96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#3 0x5555555675e9 in _start (/home/tim/fuzz/codedoc/codedoc-addr+0x135e9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/tim/codedoc-addr/codedoc.c:2903 in scan_file
==47845==ABORTING
root@ubuntu:/home/tim/fuzz/codedoc# ./codedoc poc poc.zip
ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27 I think should limit ch (char instead of int) one byte, or it use alpha table in glibc,which may cause outbound read in inline code glibc
asan output
gdb output