[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: Re: PyQt6: Double free in sipWrapper_dealloc with QApplication.postEvent
From: Phil Thompson <phil () riverbankcomputing ! com>
Date: 2021-03-20 14:37:08
Message-ID: 1e0fc3a0b9a46738bbb7c41da9b64edf () riverbankcomputing ! com
[Download RAW message or body]
On 16/03/2021 17:20, Florian Bruhin wrote:
> Consider this example:
>
> from PyQt6 import QtWidgets, QtCore
> qapp = QtWidgets.QApplication([])
> w = QtWidgets.QWidget()
> qapp.postEvent(w, QtCore.QEvent(QtCore.QEvent.Type.User))
> qapp.exec()
>
> With PyQt5, this works fine. With PyQt6, it aborts with "free(): double
> free detected in tcache 2" in:
>
> [...]
> #3 0x00007ffff7a7fbea in malloc_printerr () from /usr/lib/libc.so.6
> #4 0x00007ffff7a816c8 in _int_free () from /usr/lib/libc.so.6
> #5 0x00007ffff7a84ca8 in free () from /usr/lib/libc.so.6
> #6 0x00007ffff5187be0 in forgetObject (sw=sw@entry=0x7ffff18e7790)
> at siplib.c:10321
> #7 0x00007ffff5187c46 in sipWrapper_dealloc (self=0x7ffff18e7790)
> at siplib.c:9966
> [...]
>
> Valgrind says:
>
> Invalid free() / delete / delete[] / realloc()
> at 0x484008B: operator delete(void*, unsigned long)
> (vg_replace_malloc.c:593)
> by 0x7E95BDF: forgetObject (siplib.c:10321)
> by 0x7E95C45: sipWrapper_dealloc (siplib.c:9966)
> [...]
> Address 0xd760810 is 0 bytes inside a block of size 32 free'd
> at 0x484008B: operator delete(void*, unsigned long)
> (vg_replace_malloc.c:593)
> by 0x77C1388: QCoreApplicationPrivate::removePostedEvent(QEvent*)
> (in .../site-packages/PyQt6/Qt6/lib/libQt6Core.so.6)
> by 0x77CB019: QEvent::~QEvent() (in
> .../site-packages/PyQt6/Qt6/lib/libQt6Core.so.6)
> by 0xB2360EC: sipQEvent::~sipQEvent() (in
> .../site-packages/PyQt6/QtCore.abi3.so)
> by 0x7E95BDF: forgetObject (siplib.c:10321)
> by 0x7E95C45: sipWrapper_dealloc (siplib.c:9966)
> [...]
> Block was alloc'd at
> at 0x483EDEF: operator new(unsigned long)
> (vg_replace_malloc.c:342)
> by 0xB287E15: init_type_QEvent (in
> .../site-packages/PyQt6/QtCore.abi3.so)
> by 0x7E96621: sipSimpleWrapper_init (siplib.c:9011)
> [...]
>
> (No debug symbols ready for Qt 6 / PyQt6 at the moment - please let me
> know if this isn't enough information)
This should be fixed in the next release of PyQt6.sip. This will be
released no later that PyQt6 v6.1.
Thanks,
Phil
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic