1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-01-03 14:57:42 -05:00

prevent segfault

In case we're not connected yet and press Alt+c a segfault occurred
since `conn.xmpp_conn` is dereferenced while it's still `NULL`.

Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
Steffen Jaeckel 2022-03-03 15:01:40 +01:00
parent 07e584734d
commit 764a7fb71b
2 changed files with 11 additions and 4 deletions

View File

@ -51,6 +51,9 @@ get_message_from_editor(gchar* message, gchar** returned_message)
{
// create editor dir if not present
char* jid = connection_get_barejid();
if (!jid) {
return TRUE;
}
gchar* path = files_get_account_data_path(DIR_EDITOR, jid);
free(jid);
if (g_mkdir_with_parents(path, S_IRWXU) != 0) {

View File

@ -747,6 +747,8 @@ connection_get_ctx(void)
const char*
connection_get_fulljid(void)
{
if (!conn.xmpp_conn)
return NULL;
const char* jid = xmpp_conn_get_bound_jid(conn.xmpp_conn);
if (jid) {
return jid;
@ -759,10 +761,11 @@ char*
connection_get_barejid(void)
{
const char* jid = connection_get_fulljid();
char* result;
if (!jid)
return NULL;
Jid* jidp = jid_create(jid);
result = strdup(jidp->barejid);
char* result = strdup(jidp->barejid);
jid_destroy(jidp);
return result;
@ -772,8 +775,9 @@ char*
connection_get_user(void)
{
const char* jid = connection_get_fulljid();
char* result;
result = strdup(jid);
if (!jid)
return NULL;
char* result = strdup(jid);
char* split = strchr(result, '@');
*split = '\0';