Bug: App crashes when an SSH connection fails (wrong password, host unreachable, etc.)
Root cause:delete term was called BEFORE gtk_notebook_remove_page(), destroying the VTE widget while GTK still held a reference.
Fix: In ssh_client.cpp, always call gtk_notebook_remove_page() first, then delete term:
// Before (crashes):
deleteterm;gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_),idx);// After (fixed):
gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_),idx);deleteterm;
Also removed cleanup_done_ flag pattern - each error path now does manual resource cleanup instead of relying on a single cleanup() method.
**Bug:** App crashes when an SSH connection fails (wrong password, host unreachable, etc.)
**Root cause:** `delete term` was called BEFORE `gtk_notebook_remove_page()`, destroying the VTE widget while GTK still held a reference.
**Fix:** In `ssh_client.cpp`, always call `gtk_notebook_remove_page()` first, then `delete term`:
```cpp
// Before (crashes):
delete term;
gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_), idx);
// After (fixed):
gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_), idx);
delete term;
```
Also removed `cleanup_done_` flag pattern - each error path now does manual resource cleanup instead of relying on a single cleanup() method.
**Status:** Fixed in commit 6e719c3
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Bug: App crashes when an SSH connection fails (wrong password, host unreachable, etc.)
Root cause:
delete termwas called BEFOREgtk_notebook_remove_page(), destroying the VTE widget while GTK still held a reference.Fix: In
ssh_client.cpp, always callgtk_notebook_remove_page()first, thendelete term:Also removed
cleanup_done_flag pattern - each error path now does manual resource cleanup instead of relying on a single cleanup() method.Status: Fixed in commit
6e719c3