Skip to content

Fix possible memory leak and nullptr deleteLater()

Mladen Milinkovic requested to merge work/fix-null-deletelater into master

This is an attempt to solve a few memory issues. Not sure if it's the best way to do it.

Assume following code:

QAction *action = new KSelectAction();
...
QMenu *actionMenu = new QMenu();
action->setMenu(actionMenu);

Later something like this is done:

delete action; // actionMenu->deleteLater() gets called, original action->menu() leaks
actionMenu->xxx; // invalid memory access
delete actionMenu; // double free

If actionMenu was to be deleteLater() we would also get QCoreApplication::postEvent: Unexpected null receiver warnings.

Edited by Mladen Milinkovic

Merge request reports