Skip to content

ASAN: double-free in SSL handshake #140608

@YuanchengJiang

Description

@YuanchengJiang

Crash report

What happened?

import poplib
import socket
import threading
from unittest import TestCase, skipUnless
from test.support import socket_helper
from test.support import asynchat
from test.support import asyncore
HOST = socket_helper.HOST
PORT = 0
if hasattr(poplib, 'POP3_SSL'):
    SUPPORTS_SSL = True
RETR_RESP = b"""From: [email protected]\
.\r\n"""
class DummyPOP3Handler(asynchat.async_chat):
    def push(self, data):
        asynchat.async_chat.push(self, data.encode("ISO-8859-1") + b'\r\n')
    def cmd_echo(self, arg):
                tls_sock = context.wrap_socket(self.socket,
                                               suppress_ragged_eofs=False)
                if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
                                   ssl.SSL_ERROR_WANT_WRITE):
                    self.handle_close()
class DummyPOP3Server(asyncore.dispatcher, threading.Thread):
    def __init__(self, address, af=socket.AF_INET):
        threading.Thread.__init__(self)
        asyncore.dispatcher.__init__(self)
        self.create_socket(af, socket.SOCK_STREAM)
        self.listen(5)
        self.host, self.port = self.socket.getsockname()[:2]
    def start(self):
        threading.Thread.start(self)
    def run(self):
        self.active = True
        try:
            while self.active and asyncore.socket_map:
                    asyncore.loop(timeout=0.1, count=1)
        finally:
            asyncore.close_all(ignore_all=4095)
    def handle_accepted(self, conn, addr):
        self.handler_instance = self.handler(conn)
class TestPOP3Class(TestCase):
    def assertOK(self, resp):
                return 'A'*1000
    def test_list(self):
        self.assertEqual(self.client.list()[1:],
                    [b'From: [email protected]', b'Content-Type: text/plain',
                     b'', '\u2603', b'line2', b'line3'],
                    'A'*10)
        self.assertRaises(poplib.error_proto, self.client._shortcmd,
                          'echo +%s' % ((poplib._MAXLINE + 10) * b''))
        with self.assertRaises(ssl.CertificateError):
            resp = self.client.stls(context=ctx)
if SUPPORTS_SSL:
    from test.test_ftplib import SSLConnection
    class DummyPOP3_SSLHandler(SSLConnection, DummyPOP3Handler):
        def __init__(self, conn):
            asynchat.async_chat.__init__(self, conn)
            self.secure_connection()
            self.push('+OK dummy pop3 server ready. <timestamp>')
class TestPOP3_SSLClass(TestPOP3Class):
    def setUp(self):
        self.server = DummyPOP3Server((HOST, PORT))
        self.server.handler = DummyPOP3_SSLHandler
        self.server.start()
        self.client = poplib.POP3_SSL(self.server.host, self.server.port)
    def test__all__(self):
        self.assertIn('POP3_SSL', poplib.__all__)
    def test_context(self):
        self.assertEqual(parsed['Subject'], 'unicöde')
if __name__ == "__main__":
    import unittest as _unittest
    _unittest.main(verbosity=0)

It might need to try a few times to reproduce. Sorry for the fat PoC, I have tried to reduce it.

=================================================================
==3445487==ERROR: AddressSanitizer: attempting double-free on 0x529005cbc200 in thread T2:
    #0 0x79dd045c74d8 in free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
    #1 0x79dd01da5d80  (/lib/x86_64-linux-gnu/libssl.so.3+0x57d80) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #2 0x79dd01da2984  (/lib/x86_64-linux-gnu/libssl.so.3+0x54984) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #3 0x79dd01da6168  (/lib/x86_64-linux-gnu/libssl.so.3+0x58168) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #4 0x79dd01da4d17  (/lib/x86_64-linux-gnu/libssl.so.3+0x56d17) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #5 0x79dd01dc3837  (/lib/x86_64-linux-gnu/libssl.so.3+0x75837) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #6 0x79dd01db72ab  (/lib/x86_64-linux-gnu/libssl.so.3+0x692ab) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #7 0x79dd01da4dd6  (/lib/x86_64-linux-gnu/libssl.so.3+0x56dd6) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #8 0x79dd01dc3837  (/lib/x86_64-linux-gnu/libssl.so.3+0x75837) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #9 0x79dd01db72ab  (/lib/x86_64-linux-gnu/libssl.so.3+0x692ab) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #10 0x79dd01e4707e in _ssl__SSLSocket_do_handshake_impl ../Modules/_ssl.c:1068
    #11 0x79dd01e4707e in _ssl__SSLSocket_do_handshake ../Modules/clinic/_ssl.c.h:30
    #12 0x62887dc35e15 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3813
    #13 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #14 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #15 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #16 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #17 0x62887e15e307 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #18 0x62887e15e307 in context_run ../Python/context.c:728
    #19 0x62887dc5a6ee in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3710
    #20 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #21 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #22 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #23 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #24 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #25 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #26 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #27 0x62887e49ed38 in thread_run ../Modules/_threadmodule.c:387
    #28 0x62887e319e4f in pythread_wrapper ../Python/thread_pthread.h:234
    #29 0x79dd04529a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #30 0x79dd0426caa3  (/lib/x86_64-linux-gnu/libc.so.6+0x9caa3) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)
    #31 0x79dd042f9a33 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x129a33) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)

0x529005cbc200 is located 0 bytes inside of 16712-byte region [0x529005cbc200,0x529005cc0348)
freed by thread T1 here:
    #0 0x79dd045c74d8 in free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
    #1 0x79dd01da5d80  (/lib/x86_64-linux-gnu/libssl.so.3+0x57d80) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #2 0x79dd01da2984  (/lib/x86_64-linux-gnu/libssl.so.3+0x54984) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #3 0x79dd01da6168  (/lib/x86_64-linux-gnu/libssl.so.3+0x58168) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #4 0x79dd01da4d17  (/lib/x86_64-linux-gnu/libssl.so.3+0x56d17) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #5 0x79dd01dc3837  (/lib/x86_64-linux-gnu/libssl.so.3+0x75837) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #6 0x79dd01db72ab  (/lib/x86_64-linux-gnu/libssl.so.3+0x692ab) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #7 0x79dd01da4dd6  (/lib/x86_64-linux-gnu/libssl.so.3+0x56dd6) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #8 0x79dd01dc3837  (/lib/x86_64-linux-gnu/libssl.so.3+0x75837) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #9 0x79dd01db72ab  (/lib/x86_64-linux-gnu/libssl.so.3+0x692ab) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #10 0x79dd01e4707e in _ssl__SSLSocket_do_handshake_impl ../Modules/_ssl.c:1068
    #11 0x79dd01e4707e in _ssl__SSLSocket_do_handshake ../Modules/clinic/_ssl.c.h:30
    #12 0x62887dc35e15 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3813
    #13 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #14 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #15 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #16 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #17 0x62887e15e307 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #18 0x62887e15e307 in context_run ../Python/context.c:728
    #19 0x62887dd92ee7 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #20 0x62887dd92ee7 in PyObject_Vectorcall ../Objects/call.c:327
    #21 0x62887dc34ad2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #22 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #23 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #24 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #25 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #26 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #27 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #28 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #29 0x62887e49ed38 in thread_run ../Modules/_threadmodule.c:387
    #30 0x62887e319e4f in pythread_wrapper ../Python/thread_pthread.h:234
    #31 0x79dd04529a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #32 0x79dd0426caa3  (/lib/x86_64-linux-gnu/libc.so.6+0x9caa3) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)

previously allocated by thread T2 here:
    #0 0x79dd045c89c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x79dd01da5a4d  (/lib/x86_64-linux-gnu/libssl.so.3+0x57a4d) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #2 0x79dd01da505f  (/lib/x86_64-linux-gnu/libssl.so.3+0x5705f) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #3 0x79dd01dc3837  (/lib/x86_64-linux-gnu/libssl.so.3+0x75837) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #4 0x79dd01db72ab  (/lib/x86_64-linux-gnu/libssl.so.3+0x692ab) (BuildId: 244d468c3b142d739a72d28eaf54abca6423a9e2)
    #5 0x79dd01e4707e in _ssl__SSLSocket_do_handshake_impl ../Modules/_ssl.c:1068
    #6 0x79dd01e4707e in _ssl__SSLSocket_do_handshake ../Modules/clinic/_ssl.c.h:30
    #7 0x62887dc35e15 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3813
    #8 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #9 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #10 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #11 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #12 0x62887e15e307 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #13 0x62887e15e307 in context_run ../Python/context.c:728
    #14 0x62887dc5a6ee in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3710
    #15 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #16 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #17 0x62887dd9d035 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #18 0x62887dd9d035 in method_vectorcall ../Objects/classobject.c:73
    #19 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #20 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #21 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #22 0x62887e49ed38 in thread_run ../Modules/_threadmodule.c:387
    #23 0x62887e319e4f in pythread_wrapper ../Python/thread_pthread.h:234
    #24 0x79dd04529a41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #25 0x79dd0426caa3  (/lib/x86_64-linux-gnu/libc.so.6+0x9caa3) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)

Thread T2 created by T0 here:
    #0 0x79dd045c01f9 in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:245
    #1 0x62887e31a02b in do_start_joinable_thread ../Python/thread_pthread.h:281
    #2 0x62887e31a570 in PyThread_start_joinable_thread ../Python/thread_pthread.h:323
    #3 0x62887e4a0ad4 in ThreadHandle_start ../Modules/_threadmodule.c:474
    #4 0x62887e4a0ad4 in do_start_new_thread ../Modules/_threadmodule.c:1920
    #5 0x62887e4a182b in thread_PyThread_start_joinable_thread ../Modules/_threadmodule.c:2043
    #6 0x62887dea5ebc in cfunction_call ../Objects/methodobject.c:564
    #7 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #8 0x62887dc36f80 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:3188
    #9 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #10 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #11 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #12 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #13 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #14 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #15 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #16 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #17 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #18 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #19 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #20 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #21 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #22 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #23 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #24 0x62887dc357ac in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #25 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #26 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #27 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #28 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #29 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #30 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #31 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #32 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #33 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #34 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #35 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #36 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #37 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #38 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #39 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #40 0x62887dc357ac in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #41 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #42 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #43 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #44 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #45 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #46 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #47 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #48 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #49 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #50 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #51 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #52 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #53 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #54 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #55 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #56 0x62887dc34ad2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #57 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #58 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #59 0x62887dd96792 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #60 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #61 0x62887df43c50 in call_method ../Objects/typeobject.c:3077
    #62 0x62887df43c50 in slot_tp_init ../Objects/typeobject.c:10835
    #63 0x62887df359d7 in type_call ../Objects/typeobject.c:2461
    #64 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #65 0x62887dc36bc2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #66 0x62887e117386 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #67 0x62887e117386 in _PyEval_Vector ../Python/ceval.c:2001
    #68 0x62887e117386 in PyEval_EvalCode ../Python/ceval.c:884
    #69 0x62887e2d5f0e in run_eval_code_obj ../Python/pythonrun.c:1365
    #70 0x62887e2d5f0e in run_mod ../Python/pythonrun.c:1459
    #71 0x62887e2dabb7 in pyrun_file ../Python/pythonrun.c:1293
    #72 0x62887e2dabb7 in _PyRun_SimpleFileObject ../Python/pythonrun.c:521
    #73 0x62887e2db6dc in _PyRun_AnyFileObject ../Python/pythonrun.c:81
    #74 0x62887e34eafc in pymain_run_file_obj ../Modules/main.c:410
    #75 0x62887e34eafc in pymain_run_file ../Modules/main.c:429
    #76 0x62887e34eafc in pymain_run_python ../Modules/main.c:691
    #77 0x62887e3503de in Py_RunMain ../Modules/main.c:772
    #78 0x62887e3503de in pymain_main ../Modules/main.c:802
    #79 0x62887e3503de in Py_BytesMain ../Modules/main.c:826
    #80 0x79dd041fa1c9  (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)
    #81 0x79dd041fa28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)

Thread T1 created by T0 here:
    #0 0x79dd045c01f9 in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:245
    #1 0x62887e31a02b in do_start_joinable_thread ../Python/thread_pthread.h:281
    #2 0x62887e31a570 in PyThread_start_joinable_thread ../Python/thread_pthread.h:323
    #3 0x62887e4a0ad4 in ThreadHandle_start ../Modules/_threadmodule.c:474
    #4 0x62887e4a0ad4 in do_start_new_thread ../Modules/_threadmodule.c:1920
    #5 0x62887e4a182b in thread_PyThread_start_joinable_thread ../Modules/_threadmodule.c:2043
    #6 0x62887dea5ebc in cfunction_call ../Objects/methodobject.c:564
    #7 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #8 0x62887dc36bc2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #9 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #10 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #11 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #12 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #13 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #14 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #15 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #16 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #17 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #18 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #19 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #20 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #21 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #22 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #23 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #24 0x62887dc357ac in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #25 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #26 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #27 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #28 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #29 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #30 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #31 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #32 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #33 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #34 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #35 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #36 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #37 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #38 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #39 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #40 0x62887dc357ac in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:4021
    #41 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #42 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #43 0x62887dd9cd90 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169
    #44 0x62887dd9cd90 in method_vectorcall ../Objects/classobject.c:95
    #45 0x62887dd97ffe in _PyVectorcall_Call ../Objects/call.c:273
    #46 0x62887dd97ffe in _PyObject_Call ../Objects/call.c:348
    #47 0x62887dd97ffe in PyObject_Call ../Objects/call.c:373
    #48 0x62887dc37eb7 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2616
    #49 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #50 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #51 0x62887dd96623 in _PyObject_VectorcallDictTstate ../Objects/call.c:135
    #52 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #53 0x62887df57444 in call_method ../Objects/typeobject.c:3077
    #54 0x62887df57444 in slot_tp_call ../Objects/typeobject.c:10606
    #55 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #56 0x62887dc34ad2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620
    #57 0x62887e117b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #58 0x62887e117b55 in _PyEval_Vector ../Python/ceval.c:2001
    #59 0x62887dd96792 in _PyObject_VectorcallDictTstate ../Objects/call.c:146
    #60 0x62887dd96cdc in _PyObject_Call_Prepend ../Objects/call.c:504
    #61 0x62887df43c50 in call_method ../Objects/typeobject.c:3077
    #62 0x62887df43c50 in slot_tp_init ../Objects/typeobject.c:10835
    #63 0x62887df359d7 in type_call ../Objects/typeobject.c:2461
    #64 0x62887dd914cd in _PyObject_MakeTpCall ../Objects/call.c:242
    #65 0x62887dc36bc2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:2920
    #66 0x62887e117386 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121
    #67 0x62887e117386 in _PyEval_Vector ../Python/ceval.c:2001
    #68 0x62887e117386 in PyEval_EvalCode ../Python/ceval.c:884
    #69 0x62887e2d5f0e in run_eval_code_obj ../Python/pythonrun.c:1365
    #70 0x62887e2d5f0e in run_mod ../Python/pythonrun.c:1459
    #71 0x62887e2dabb7 in pyrun_file ../Python/pythonrun.c:1293
    #72 0x62887e2dabb7 in _PyRun_SimpleFileObject ../Python/pythonrun.c:521
    #73 0x62887e2db6dc in _PyRun_AnyFileObject ../Python/pythonrun.c:81
    #74 0x62887e34eafc in pymain_run_file_obj ../Modules/main.c:410
    #75 0x62887e34eafc in pymain_run_file ../Modules/main.c:429
    #76 0x62887e34eafc in pymain_run_python ../Modules/main.c:691
    #77 0x62887e3503de in Py_RunMain ../Modules/main.c:772
    #78 0x62887e3503de in pymain_main ../Modules/main.c:802
    #79 0x62887e3503de in Py_BytesMain ../Modules/main.c:826
    #80 0x79dd041fa1c9  (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)
    #81 0x79dd041fa28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)

SUMMARY: AddressSanitizer: double-free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52 in free
==3445487==ABORTING

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    extension-modulesC modules in the Modules dirpendingThe issue will be closed if no feedback is providedtopic-SSLtype-crashA hard crash of the interpreter, possibly with a core dump

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions