[New-bugs-announce] [issue40953] _PyWideStringList_Copy breaks asan builds

Christian Heimes report at bugs.python.org
Fri Jun 12 03:30:34 EDT 2020


New submission from Christian Heimes <lists at cheimes.de>:

It's not possible to build Python with address sanitizer and memory leak checker asan.

$ ./configure --with-address-sanitizer --with-undefined-behavior-sanitizer
$ make
...
./python -E -S -m sysconfig --generate-posix-vars ;\
if test $? -ne 0 ; then \
        echo "generate-posix-vars failed" ; \
        rm -f ./pybuilddir.txt ; \
        exit 1 ; \
fi

=================================================================
==1585722==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x7fa404ea9667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
    #1 0x9ab398 in _PyWideStringList_Copy Python/initconfig.c:315
    #2 0x9b48bd in _PyConfig_Copy Python/initconfig.c:857
    #3 0xa20b4c in _PyInterpreterState_SetConfig Python/pystate.c:1834
    #4 0xa07a14 in pycore_create_interpreter Python/pylifecycle.c:554
    #5 0xa07a14 in pyinit_config Python/pylifecycle.c:759
    #6 0xa07a14 in pyinit_core Python/pylifecycle.c:926
    #7 0xa09b17 in Py_InitializeFromConfig Python/pylifecycle.c:1136
    #8 0x4766c2 in pymain_init Modules/main.c:66
    #9 0x47bd12 in pymain_main Modules/main.c:653
    #10 0x47bd12 in Py_BytesMain Modules/main.c:686
    #11 0x7fa404173041 in __libc_start_main (/lib64/libc.so.6+0x27041)

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x7fa404ea9667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
    #1 0x9ab398 in _PyWideStringList_Copy Python/initconfig.c:315
    #2 0x9b8ee8 in PyConfig_Read Python/initconfig.c:2506
    #3 0xa07282 in pyinit_core Python/pylifecycle.c:920
    #4 0xa09b17 in Py_InitializeFromConfig Python/pylifecycle.c:1136
    #5 0x4766c2 in pymain_init Modules/main.c:66
    #6 0x47bd12 in pymain_main Modules/main.c:653
    #7 0x47bd12 in Py_BytesMain Modules/main.c:686
    #8 0x7fa404173041 in __libc_start_main (/lib64/libc.so.6+0x27041)

Indirect leak of 200 byte(s) in 6 object(s) allocated from:
    #0 0x7fa404ea9667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
    #1 0x63351c in PyMem_RawMalloc Objects/obmalloc.c:572
    #2 0x63351c in _PyMem_RawWcsdup Objects/obmalloc.c:644
    #3 0x9ab457 in _PyWideStringList_Copy Python/initconfig.c:321
    #4 0x9b48bd in _PyConfig_Copy Python/initconfig.c:857
    #5 0xa20b4c in _PyInterpreterState_SetConfig Python/pystate.c:1834
    #6 0xa07a14 in pycore_create_interpreter Python/pylifecycle.c:554
    #7 0xa07a14 in pyinit_config Python/pylifecycle.c:759
    #8 0xa07a14 in pyinit_core Python/pylifecycle.c:926
    #9 0xa09b17 in Py_InitializeFromConfig Python/pylifecycle.c:1136
    #10 0x4766c2 in pymain_init Modules/main.c:66
    #11 0x47bd12 in pymain_main Modules/main.c:653
    #12 0x47bd12 in Py_BytesMain Modules/main.c:686
    #13 0x7fa404173041 in __libc_start_main (/lib64/libc.so.6+0x27041)

Indirect leak of 200 byte(s) in 6 object(s) allocated from:
    #0 0x7fa404ea9667 in __interceptor_malloc (/lib64/libasan.so.6+0xb0667)
    #1 0x63351c in PyMem_RawMalloc Objects/obmalloc.c:572
    #2 0x63351c in _PyMem_RawWcsdup Objects/obmalloc.c:644
    #3 0x9ab457 in _PyWideStringList_Copy Python/initconfig.c:321
    #4 0x9b8ee8 in PyConfig_Read Python/initconfig.c:2506
    #5 0xa07282 in pyinit_core Python/pylifecycle.c:920
    #6 0xa09b17 in Py_InitializeFromConfig Python/pylifecycle.c:1136
    #7 0x4766c2 in pymain_init Modules/main.c:66
    #8 0x47bd12 in pymain_main Modules/main.c:653
    #9 0x47bd12 in Py_BytesMain Modules/main.c:686
    #10 0x7fa404173041 in __libc_start_main (/lib64/libc.so.6+0x27041)


Workaround:

$ cat Misc/asan-suppression.txt 
leak:_PyWideStringList_Copy
$ LSAN_OPTIONS="suppressions=Misc/asan-suppression.txt" make

----------
components: Build
messages: 371336
nosy: christian.heimes
priority: normal
severity: normal
status: open
title: _PyWideStringList_Copy breaks asan builds
type: compile error
versions: Python 3.10, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40953>
_______________________________________


More information about the New-bugs-announce mailing list