1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

terminalpanel.cpp: Set m_konsolePart to nullptr during exit signal

If Dolphin terminal is open, and one types `exit` there and then closes Dolphin, Dolphin crashes due to a dangling pointer.

Konsole KPart is deleting itself when Konsole session exits, but Dolphin tracks it as a child of the Terminal Panel. 
The Terminal Panel doesn't get destroyed when Konsole KPart does, and it tries to double free during children clean up.
(Thanks @sitter !) 

Setting `m_konsolePart` to `nullptr` during exit signal fixes this, since there is already check in place for that in the destructor.

BUG:479596
This commit is contained in:
Akseli Lahtinen 2024-01-10 09:22:46 +00:00
parent 7e02110c64
commit 1a59905027

View File

@ -70,6 +70,7 @@ bool TerminalPanel::currentWorkingDirectoryIsChildOf(const QString &path) const
void TerminalPanel::terminalExited()
{
m_terminal = nullptr;
m_konsolePart = nullptr;
Q_EMIT hideTerminalPanel();
}