I worked a bit on this package too, here are my findings: ``` Thread 2 "apache2" hit Breakpoint 2, 0x00005624ceb81420 in ap_rwrite () (gdb) bt #0 0x00005624ceb81420 in ap_rwrite () #1 0x00007fe7c99bbe72 in req_write (self=0x7fe7c84df700, args=) at /home/ubuntu/libapache2-mod-python/libapache2-mod-python-3.5.0/src/requestobject.c:1590 #2 0x00007fe7c9501bce in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #3 0x00007fe7c948be4e in _PyEval_EvalFrameDefault () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #4 0x00007fe7c95d7e1f in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #5 0x00007fe7c948a58e in _PyEval_EvalFrameDefault () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #6 0x00007fe7c95d7e1f in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #7 0x00007fe7c948a58e in _PyEval_EvalFrameDefault () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #8 0x00007fe7c95d7e1f in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #9 0x00007fe7c948a58e in _PyEval_EvalFrameDefault () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #10 0x00007fe7c95d7e1f in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #11 0x00007fe7c94f8f48 in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #12 0x00007fe7c94f9143 in ?? () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #13 0x00007fe7c94f9825 in _PyObject_CallMethod_SizeT () from target:/lib/x86_64-linux-gnu/libpython3.10.so.1.0 #14 0x00007fe7c99c505c in python_handler (req=0x7fe7c93740a0, phase=) at /home/ubuntu/libapache2-mod-python/libapache2-mod-python-3.5.0/src/mod_python.c:1535 #15 0x00005624ceb8dc08 in ap_run_handler () #16 0x00005624ceb8faf6 in ap_invoke_handler () #17 0x00005624cebb6678 in ap_process_async_request () #18 0x00005624cebb6d1b in ?? () #19 0x00005624ceba2d68 in ap_run_process_connection () #20 0x00007fe7c9a1d795 in ?? () from target:/usr/lib/apache2/modules/mod_mpm_event.so #21 0x00007fe7c9a1e13c in ?? () from target:/usr/lib/apache2/modules/mod_mpm_event.so #22 0x00007fe7c9c05b43 in start_thread (arg=) at ./nptl/pthread_create.c:442 #23 0x00007fe7c9c97b80 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 (gdb) up #1 0x00007fe7c99bbe72 in req_write (self=0x7fe7c84df700, args=) at /home/ubuntu/libapache2-mod-python/libapache2-mod-python-3.5.0/src/requestobject.c:1590 1590 rc = ap_rwrite(buff, len, self->request_rec); (gdb) p/x buff $1 = 0x7fe700000000 (gdb) p/x *buff Cannot access memory at address 0x7fe700000000 ``` And indeed the segfault happens in a lower frame at this same address: ``` Thread 2 "apache2" received signal SIGSEGV, Segmentation fault. __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:416 416 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) display /i $pc 1: x/i $pc => 0x7fe7c9c35a60 <__memmove_sse2_unaligned_erms+96>: mov -0x8(%rsi,%rdx,1),%rcx (gdb) p/x $rsi $2 = 0x7fe700000000 (gdb) p/x $rdx $3 = 0xe ``` And I can't find this address in /proc/pid/maps, which is weird because that would mean PyArg_ParseTuple returns a wrong address.