From a6eb0d2c43bb3916e6a77f54a8ba070962bcf0a1 Mon Sep 17 00:00:00 2001 From: Paul Fariello Date: Wed, 17 Apr 2019 11:47:54 +0200 Subject: [PATCH] Handle missing real jid in OMEMO encrypted MUC This should never happens since we should ensure MUC is Non-Anonymous before enabling OMEMO. But we should neither segfault if this happens. --- src/omemo/omemo.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c index 06174da5..e74abe9d 100644 --- a/src/omemo/omemo.c +++ b/src/omemo/omemo.c @@ -364,9 +364,13 @@ omemo_start_muc_sessions(const char *const roomjid) GList *iter; for (iter = roster; iter != NULL; iter = iter->next) { Occupant *occupant = (Occupant *)iter->data; - Jid *jid = jid_create(occupant->jid); - omemo_start_session(jid->barejid); - jid_destroy(jid); + if (occupant->jid != NULL) { + Jid *jid = jid_create(occupant->jid); + omemo_start_session(jid->barejid); + jid_destroy(jid); + } else { + log_error("OMEMO: cannot get real jid for %s in %s", occupant->nick, roomjid); + } } g_list_free(roster); }