Crash with no Identity
Start with a fresh installation of quassel. Skip create identity. Try to connect to some network.
It crash while accessing a null reference. From a null pointer to a an Identity object which, of course, does not exist.
In the patch, the returned identity is checked if it exist. If not, no new CertIdentity is created and a warning is printed.
- Disable GUI components to connect to a network if not identity exist.
- Client::identity() should not returns pointers. Const references are fine.
If no identify exist, may throw an exception. Or return a dummy identify.
client: Fix settings crash on missing net identity
When fetching the client identity in Network settings, make sure the
identity exists before trying to convert it into a CertIdentity.
This resolves a crash if an identity is deleted improperly or if no
identities are specified.
1. Clear the configuration for Quassel monolithic
2. Start Quassel monolithic
3. Cancel the setup wizard (before creating any identity)
4. Go to Settings -> Configure Quassel... (F7)
5. Navigate to IRC -> Identities, confirm that no identity exists
6. Navigate to IRC -> Networks
7. Add a new network (details don't matter)
8. Observe results
NOTE: This fix was contributed by "kater" on the Quassel IRC bug
tracker. I'm not sure of a better way to provide attribution, as I
don't know if they want their email address part of Quassel's public
See the original patch here: