about summary refs log tree commit diff stats
path: root/src/xmpp
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-02-09 22:11:25 +0000
committerJames Booth <boothj5@gmail.com>2015-02-09 22:11:25 +0000
commit64774a947edf87f6acae07305861149f5194052b (patch)
tree75ad173244441c907a626547fdd7f9d2d2c47424 /src/xmpp
parent51ccb695804fc4174b59cd45b7008f13bddd4739 (diff)
parent5c9dd2802a6aefcaa67cbf03a65128b595b587c9 (diff)
downloadprofani-tty-64774a947edf87f6acae07305861149f5194052b.tar.gz
Merge branch 'master' into readline
Diffstat (limited to 'src/xmpp')
-rw-r--r--src/xmpp/capabilities.c14
-rw-r--r--src/xmpp/iq.c10
2 files changed, 15 insertions, 9 deletions
diff --git a/src/xmpp/capabilities.c b/src/xmpp/capabilities.c
index 164313e1..1a9eed74 100644
--- a/src/xmpp/capabilities.c
+++ b/src/xmpp/capabilities.c
@@ -154,49 +154,49 @@ _caps_by_ver(const char * const ver)
 
         char *category = g_key_file_get_string(cache, ver, "category", NULL);
         if (category) {
-            new_caps->category = strdup(category);
+            new_caps->category = category;
         } else {
             new_caps->category = NULL;
         }
 
         char *type = g_key_file_get_string(cache, ver, "type", NULL);
         if (type) {
-            new_caps->type = strdup(type);
+            new_caps->type = type;
         } else {
             new_caps->type = NULL;
         }
 
         char *name = g_key_file_get_string(cache, ver, "name", NULL);
         if (name) {
-            new_caps->name = strdup(name);
+            new_caps->name = name;
         } else {
             new_caps->name = NULL;
         }
 
         char *software = g_key_file_get_string(cache, ver, "software", NULL);
         if (software) {
-            new_caps->software = strdup(software);
+            new_caps->software = software;
         } else {
             new_caps->software = NULL;
         }
 
         char *software_version = g_key_file_get_string(cache, ver, "software_version", NULL);
         if (software_version) {
-            new_caps->software_version = strdup(software_version);
+            new_caps->software_version = software_version;
         } else {
             new_caps->software_version = NULL;
         }
 
         char *os = g_key_file_get_string(cache, ver, "os", NULL);
         if (os) {
-            new_caps->os = strdup(os);
+            new_caps->os = os;
         } else {
             new_caps->os = NULL;
         }
 
         char *os_version = g_key_file_get_string(cache, ver, "os_version", NULL);
         if (os_version) {
-            new_caps->os_version = strdup(os_version);
+            new_caps->os_version = os_version;
         } else {
             new_caps->os_version = NULL;
         }
diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c
index 7fedf0ed..bc12b780 100644
--- a/src/xmpp/iq.c
+++ b/src/xmpp/iq.c
@@ -631,6 +631,8 @@ _caps_response_handler_for_jid(xmpp_conn_t *const conn, xmpp_stanza_t * const st
     Capabilities *capabilities = caps_create(query);
     caps_add_by_jid(jid, capabilities);
 
+    free(jid);
+
     return 0;
 }
 
@@ -640,10 +642,12 @@ _caps_response_handler_legacy(xmpp_conn_t *const conn, xmpp_stanza_t * const sta
 {
     const char *id = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_ID);
     xmpp_stanza_t *query = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_QUERY);
+    char *expected_node = (char *)userdata;
 
     char *type = xmpp_stanza_get_type(stanza);
     // ignore non result
     if ((g_strcmp0(type, "get") == 0) || (g_strcmp0(type, "set") == 0)) {
+        free(expected_node);
         return 1;
     }
 
@@ -656,6 +660,7 @@ _caps_response_handler_legacy(xmpp_conn_t *const conn, xmpp_stanza_t * const sta
     const char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
     if (!from) {
         log_info("No from attribute");
+        free(expected_node);
         return 0;
     }
 
@@ -664,22 +669,23 @@ _caps_response_handler_legacy(xmpp_conn_t *const conn, xmpp_stanza_t * const sta
         char *error_message = stanza_get_error_message(stanza);
         log_warning("Error received for capabilities response from %s: ", from, error_message);
         free(error_message);
+        free(expected_node);
         return 0;
     }
 
     if (query == NULL) {
         log_warning("No query element found.");
+        free(expected_node);
         return 0;
     }
 
     char *node = xmpp_stanza_get_attribute(query, STANZA_ATTR_NODE);
     if (node == NULL) {
         log_warning("No node attribute found");
+        free(expected_node);
         return 0;
     }
 
-    char *expected_node = (char *)userdata;
-
     // nodes match
     if (g_strcmp0(expected_node, node) == 0) {
         log_info("Legacy capabilities, nodes match %s", node);