New submission from Francesc Elies <[email protected]>:
Hi,
Context
=======
we are compiling a dll with clang and it's address sanitizer and loading it via
cffi, at random spots ASAN complains with bad-free.
==15100==ERROR: AddressSanitizer: attempting free on address which was
not malloc()-ed: 0x01991a850310 in thread T0
#0 0x7ffa1dcc7f31
(C:\LLVM-13.0.0-win64\lib\clang\13.0.0\lib\windows\clang_rt.asan_dynamic-x86_64.dll+0x180037f31)
#1 0x7ffa3aea59ec in _PyObject_Realloc
D:\_w\1\s\Objects\obmalloc.c:2011
#2 0x7ffa3af7f347 in _PyObject_GC_Resize
D:\_w\1\s\Modules\gcmodule.c:2309
#3 0x7ffa3aedeeaa in _PyEval_EvalCode D:\_w\1\s\Python\ceval.c:4101
...
See links below for a full trace
The project where we see this it's quite complex and with many moving parts
therefore we made a minimal reproducible example.
Reprex
======
The test boils down to the following:
win32api.LoadLibrary("LLVM-13.0.0-win64/lib/clang/13.0.0/lib/windows/clang_rt.asan_dynamic-x86_64.dll")
import hello # hello is our compiled c extension with clang and ASAN
print(hello.system())
import pdb
If if comment the last line (import pdb) ASAN does not complain.
If instead of import pdb you import numpy the same problem can be seen.
See the following failing build
https://github.com/FrancescElies/min_reprex_python_c_extension_asan/runs/4263693010?check_suite_focus=true
See here the CI test
https://github.com/FrancescElies/min_reprex_python_c_extension_asan/blob/d966d3a472df71977dc6519a76be0120d2d58d39/test.py
We did not try this in linux yet, would that help?
Is this a bug? Or are we doing something wrong?
Thanks in advance for your time.
----------
components: Windows
messages: 406578
nosy: FrancescElies, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: AddressSanitizer: bad-free - hello world c extension
versions: Python 3.10, Python 3.7, Python 3.8, Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45842>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com