about summary refs log tree commit diff stats
path: root/src/xmpp/ox.c
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2021-03-25 16:30:19 +0100
committerMichael Vetter <jubalh@iodoru.org>2021-03-25 16:30:19 +0100
commitb584a1ecd081bda4eb7ea0e3231ca4ca117be581 (patch)
tree6b66196da71733c59f1305d6f500618d2c29cd59 /src/xmpp/ox.c
parent10df93ee3e2d85d43bc5b0e4a0c48debc7bae1b4 (diff)
downloadprofani-tty-b584a1ecd081bda4eb7ea0e3231ca4ca117be581.tar.gz
ox: make _ox_public_key_result safer
Diffstat (limited to 'src/xmpp/ox.c')
-rw-r--r--src/xmpp/ox.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/xmpp/ox.c b/src/xmpp/ox.c
index c055863e..0f33322c 100644
--- a/src/xmpp/ox.c
+++ b/src/xmpp/ox.c
@@ -421,13 +421,23 @@ _ox_public_key_result(xmpp_conn_t* const conn, xmpp_stanza_t* const stanza, void
         log_error("[OX] Public key request response failed: No <pubkey/>");
         return FALSE;
     }
+
     xmpp_stanza_t* data = xmpp_stanza_get_child_by_name(pubkey, STANZA_NAME_DATA);
+    if (!data) {
+        log_error("[OX] No data");
+    }
+
     char* base64_data = xmpp_stanza_get_text(data);
-    log_debug("Key data: %s", base64_data);
-    if (p_ox_gpg_import(base64_data)) {
-        cons_show("Public Key imported");
-    } else {
-        cons_show("Public Key import failed. Check log for details.");
+    if (base64_data) {
+        log_debug("Key data: %s", base64_data);
+
+        if (p_ox_gpg_import(base64_data)) {
+            cons_show("Public Key imported");
+        } else {
+            cons_show("Public Key import failed. Check log for details.");
+        }
+
+        free(base64_data);
     }
 
     return FALSE;