Sometimes, after a connection error of some form occurs, libpurple segfaults in connection.c:purple_connection_disconnect_cb(), which is called via an idle callback. In particular, purple_account_get_password(account) fails because account is invalid.
I believe this is because haze destroys the account on an idle callback set in response to ConnUiOps::disconnected, but does not remove the gc->disconnect_timeout callback.
Either haze should cancel that callback (which seems broken), or should destroy the account in response to a later signal.
Sometimes, after a connection error of some form occurs, libpurple segfaults in connection. c:purple_ connection_ disconnect_ cb(), which is called via an idle callback. In particular, purple_ account_ get_password( account) fails because account is invalid.
I believe this is because haze destroys the account on an idle callback set in response to ConnUiOps: :disconnected, but does not remove the gc->disconnect_ timeout callback.
Either haze should cancel that callback (which seems broken), or should destroy the account in response to a later signal.