Commit cb49c985 authored by David Hallas's avatar David Hallas Committed by Kurt Hindenburg

Fixes crash when using the Copy Input To All Tabs feature

Summary:
Fixes crash when using the Copy Input To All Tabs feature. The crash is
caused because the sessions are removed from the SessionManager before
the MainWindow is updated. When the MainWindow receives the
activeViewChanged signal it assumes that the
SessionManager::sessionProfile returns a valid Profile pointer, but in
this case it has already been freed and is therefore nullptr. The fix is
to simply check if the new active Session has a valid Profile, if not
simply ignore it.

Test Plan:
1. Open Konsole window
2. Open multiple tabs within that Konsole window
3. (apparently an important piece) Scroll through the tabs and go back to the first one opened, on the far left of the tab bar
4. Select Edit menu -> Copy Input To -> All Tabs in Current Window
5. Type a ctrl-D to issue logout command to all tabs in window

BUG: 405158

Reviewers: #konsole, hindenburg

Reviewed By: #konsole, hindenburg

Subscribers: hindenburg, konsole-devel

Tags: #konsole

Differential Revision: https://phabricator.kde.org/D19642
parent 7265be97
......@@ -234,6 +234,9 @@ void MainWindow::disconnectController(SessionController *controller)
void MainWindow::activeViewChanged(SessionController *controller)
{
if (!SessionManager::instance()->sessionProfile(controller->session())) {
return;
}
// associate bookmark menu with current session
bookmarkHandler()->setActiveView(controller);
disconnect(bookmarkHandler(), &Konsole::BookmarkHandler::openUrl, nullptr, nullptr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment