Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.5.0
-
None
Description
In qquickstyleitem.cpp there's code like this (see the switch in QQuickStyleItem::initStyleOption):
m_styleoption = new QStyleOptionButton();
where m_styleoption is a pointer to QStyleOption.
Since QStyleOption does not have a virtual destructor (OOPS?), the non-virtual deletion that then happens in QQuickStyleItem's dtor leaks memory and invokes undefined behaviour:
QQuickStyleItem::~QQuickStyleItem()
{
delete m_styleoption; // kaboom
m_styleoption = 0;
}