about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xmpp/omemo.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/xmpp/omemo.c b/src/xmpp/omemo.c
index 3be4dad5..eb4f0fbc 100644
--- a/src/xmpp/omemo.c
+++ b/src/xmpp/omemo.c
@@ -442,29 +442,30 @@ _omemo_receive_devicelist(xmpp_stanza_t *const stanza, void *const userdata)
     }
 
     xmpp_stanza_t *item = xmpp_stanza_get_child_by_name(items, "item");
-    if (item && g_strcmp0(xmpp_stanza_get_id(item), "current") == 0 ) {
-        xmpp_stanza_t *list = xmpp_stanza_get_child_by_ns(item, STANZA_NS_OMEMO);
-        if (!list) {
-            return 1;
-        }
-
-        xmpp_stanza_t *device;
-        for (device = xmpp_stanza_get_children(list); device != NULL; device = xmpp_stanza_get_next(device)) {
-            if (g_strcmp0(xmpp_stanza_get_name(device), "device") != 0) {
-                continue;
+    if (item) {
+        if (g_strcmp0(xmpp_stanza_get_id(item), "current") == 0 ) {
+            xmpp_stanza_t *list = xmpp_stanza_get_child_by_ns(item, STANZA_NS_OMEMO);
+            if (!list) {
+                return 1;
             }
 
-            const char *id = xmpp_stanza_get_id(device);
-            if (id != NULL) {
-               device_list = g_list_append(device_list, GINT_TO_POINTER(strtoul(id, NULL, 10)));
-            } else {
-               log_error("OMEMO: received device without ID");
+            xmpp_stanza_t *device;
+            for (device = xmpp_stanza_get_children(list); device != NULL; device = xmpp_stanza_get_next(device)) {
+                if (g_strcmp0(xmpp_stanza_get_name(device), "device") != 0) {
+                    continue;
+                }
+
+                const char *id = xmpp_stanza_get_id(device);
+                if (id != NULL) {
+                    device_list = g_list_append(device_list, GINT_TO_POINTER(strtoul(id, NULL, 10)));
+                } else {
+                    log_error("OMEMO: received device without ID");
+                }
             }
+        } else {
+            log_warning("OMEMO: User %s has a non 'current' device item list: %s.", from, xmpp_stanza_get_id(item));
         }
     }
-    if (item && g_strcmp0(xmpp_stanza_get_id(item), "current") != 0 ) {
-        log_warning("OMEMO: User %s has a non 'current' device item list: %s.", from, xmpp_stanza_get_id(item));
-    }
 
     omemo_set_device_list(from, device_list);