I tried building the groff-1.25.0.rc1 with clang's ASAN.
The next error (during "make -k check"):

  GROFF    doc/groff-man-pages.pdf
=================================================================
==850834==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator 
delete []) on 0x7051a6beb4e0
    #0 0x590f7622b86d in operator delete[](void*) 
/home/runner/work/llvm-project/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:179:46
    #1 0x590f7624cdff in block_entry::~block_entry() 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:667:3
    #2 0x590f76282a24 in left_block_entry::~left_block_entry() 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:334:7
    #3 0x590f76282a74 in left_block_entry::~left_block_entry() 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:334:7
    #4 0x590f7625ce86 in table::~table() 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:1309:5
    #5 0x590f7622e9fc in process_table(table_input&) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:1667:5
    #6 0x590f7622dda7 in process_input_file(_IO_FILE*) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:270:4
    #7 0x590f76243bee in main 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:1782:5
    #8 0x73f1a782a600 in __libc_start_call_main 
csu/../sysdeps/nptl/libc_start_call_main.h:59:16
    #9 0x73f1a782a717 in __libc_start_main csu/../csu/libc-start.c:360:3
    #10 0x590f76142984 in _start 
(/build/groff-1.25.0.rc1/build-64-clang/tbl+0x5e984)

0x7051a6beb4e0 is located 0 bytes inside of 62-byte region 
[0x7051a6beb4e0,0x7051a6beb51e)
allocated by thread T0 here:
    #0 0x590f761e7f39 in calloc 
/home/runner/work/llvm-project/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:74:3
    #1 0x590f7628be7a in string::extract() const 
/build/groff-1.25.0.rc1/build-64-clang/../src/libs/libgroff/string.cpp:384:33
    #2 0x590f76263398 in table::add_entry(int, int, string const&, entry_format 
const*, char const*, int) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:1545:17
    #3 0x590f76240b46 in process_data(table_input&, format*, options*) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:1567:13
    #4 0x590f7622e972 in process_table(table_input&) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:1665:17
    #5 0x590f7622dda7 in process_input_file(_IO_FILE*) 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:270:4
    #6 0x590f76243bee in main 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/main.cpp:1782:5
    #7 0x73f1a782a600 in __libc_start_call_main 
csu/../sysdeps/nptl/libc_start_call_main.h:59:16
    #8 0x73f1a782a717 in __libc_start_main csu/../csu/libc-start.c:360:3
    #9 0x590f76142984 in _start 
(/build/groff-1.25.0.rc1/build-64-clang/tbl+0x5e984)

SUMMARY: AddressSanitizer: alloc-dealloc-mismatch 
/build/groff-1.25.0.rc1/build-64-clang/../src/preproc/tbl/table.cpp:667:3 in 
block_entry::~block_entry()
==850834==HINT: if you don't care about these errors you may set 
ASAN_OPTIONS=alloc_dealloc_mismatch=0
==850834==ABORTING
/build/groff-1.25.0.rc1/build-64-clang/groff: error: tbl: Aborted

Explanation:
calloc() pairs with free().
new[] pairs with delete[].

Bruno




Reply via email to