From 74942da0ff65cf51899c19deae605790b0b22d3a Mon Sep 17 00:00:00 2001 From: Tim Nieradzik Date: Mon, 5 Sep 2016 09:34:00 +0300 Subject: [PATCH 1/7] cmd_defs: Fix typo --- src/command/cmd_defs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 19529a68..c98b9bf3 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -1992,10 +1992,10 @@ static struct cmd_t command_defs[] = { "reload []", "Reload a plugin, passing no argument will reload all plugins." }, { "python_version", "Show the Python interpreter version." }) CMD_EXAMPLES( - "/plugin install /home/steveharris/Downloads/metal.py", - "/plugin load browser.py", - "/plugin unload say.py", - "/plugin reload wikipedia.py") + "/plugins install /home/steveharris/Downloads/metal.py", + "/plugins load browser.py", + "/plugins unload say.py", + "/plugins reload wikipedia.py") }, { "/prefs", From c908f37a2352876549ec358450bf79a0a12f1565 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 22:00:16 +0100 Subject: [PATCH 2/7] Fail configure when no pthread support --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 71039dcb..d0f6ee14 100644 --- a/configure.ac +++ b/configure.ac @@ -112,7 +112,7 @@ else fi # threading -ACX_PTHREAD +ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])]) LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ]) From 9e59571f840ea13aadd2774dc330a62c9749a242 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 22:27:30 +0100 Subject: [PATCH 3/7] Free strings in _complete_filepath --- src/command/cmd_ac.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 6bab07ce..f60619a3 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -3002,18 +3002,26 @@ _complete_filepath(const char *const input, char *const startstr) char * acstring; if (output_off) { if (asprintf(&tmp, "%s/%s", directory, dir->d_name) == -1) { + free(foofile); + free(directory); return NULL; } if (asprintf(&acstring, "~/%s", tmp+output_off) == -1) { + free(foofile); + free(directory); return NULL; } free(tmp); } else if (strcmp(directory, "/") == 0) { if (asprintf(&acstring, "/%s", dir->d_name) == -1) { + free(foofile); + free(directory); return NULL; } } else { if (asprintf(&acstring, "%s/%s", directory, dir->d_name) == -1) { + free(foofile); + free(directory); return NULL; } } @@ -3022,10 +3030,9 @@ _complete_filepath(const char *const input, char *const startstr) } closedir(d); } - } else { - free(foofile); - free(directory); } + free(foofile); + free(directory); result = autocomplete_param_with_ac(input, startstr, filepath_ac, TRUE); if (result) { From 2613d23f8b33b248dceb91d0ed16e0362a719945 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 22:55:23 +0100 Subject: [PATCH 4/7] Free string on /plugins install --- src/command/cmd_funcs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index f163d3bc..f4b597c0 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -6090,6 +6090,7 @@ cmd_plugins(ProfWin *window, const char *const command, gchar **args) } g_free(plugin_name); + free(filename); return TRUE; } else if (g_strcmp0(args[0], "load") == 0) { if (args[1] == NULL) { From 74148dd6a23f875f9e6aee9ac01bdad8ccf0f769 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 23:10:09 +0100 Subject: [PATCH 5/7] Fix string frees in _complete_filepath --- src/command/cmd_ac.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index f60619a3..cedcadee 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -3003,25 +3003,21 @@ _complete_filepath(const char *const input, char *const startstr) if (output_off) { if (asprintf(&tmp, "%s/%s", directory, dir->d_name) == -1) { free(foofile); - free(directory); return NULL; } if (asprintf(&acstring, "~/%s", tmp+output_off) == -1) { free(foofile); - free(directory); return NULL; } free(tmp); } else if (strcmp(directory, "/") == 0) { if (asprintf(&acstring, "/%s", dir->d_name) == -1) { free(foofile); - free(directory); return NULL; } } else { if (asprintf(&acstring, "%s/%s", directory, dir->d_name) == -1) { free(foofile); - free(directory); return NULL; } } @@ -3030,9 +3026,10 @@ _complete_filepath(const char *const input, char *const startstr) } closedir(d); } + } else { + free(directory); } free(foofile); - free(directory); result = autocomplete_param_with_ac(input, startstr, filepath_ac, TRUE); if (result) { From 77ef4de29ec72cd26833fdb5e68d79d44cdaafe5 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 23:19:22 +0100 Subject: [PATCH 6/7] Free hashtable key list in connection_jid_for_feature() --- src/xmpp/connection.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c index 8a963bb4..70ca12b0 100644 --- a/src/xmpp/connection.c +++ b/src/xmpp/connection.c @@ -297,6 +297,7 @@ connection_jid_for_feature(const char *const feature) char *jid = curr->data; GHashTable *features = g_hash_table_lookup(conn.features_by_jid, jid); if (features && g_hash_table_lookup(features, feature)) { + g_list_free(jids); return jid; } From 4647fd8a4fed432faf68de1b48d964deb01b7474 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 5 Sep 2016 23:27:56 +0100 Subject: [PATCH 7/7] Free stanzas on stanza_create_http_upload_request() --- src/xmpp/stanza.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c index ed7d0fce..2c4f1bd0 100644 --- a/src/xmpp/stanza.c +++ b/src/xmpp/stanza.c @@ -244,6 +244,8 @@ stanza_create_http_upload_request(xmpp_ctx_t *ctx, const char *const id, free(filename_cpy); xmpp_stanza_add_child(filename, filename_txt); xmpp_stanza_add_child(request, filename); + xmpp_stanza_release(filename_txt); + xmpp_stanza_release(filename); xmpp_stanza_t *size = xmpp_stanza_new(ctx); xmpp_stanza_set_name(size, STANZA_NAME_SIZE); @@ -255,6 +257,8 @@ stanza_create_http_upload_request(xmpp_ctx_t *ctx, const char *const id, } xmpp_stanza_add_child(size, size_txt); xmpp_stanza_add_child(request, size); + xmpp_stanza_release(size_txt); + xmpp_stanza_release(size); xmpp_stanza_t *content_type = xmpp_stanza_new(ctx); xmpp_stanza_set_name(content_type, STANZA_NAME_CONTENT_TYPE); @@ -262,6 +266,8 @@ stanza_create_http_upload_request(xmpp_ctx_t *ctx, const char *const id, xmpp_stanza_set_text(content_type_txt, upload->mime_type); xmpp_stanza_add_child(content_type, content_type_txt); xmpp_stanza_add_child(request, content_type); + xmpp_stanza_release(content_type_txt); + xmpp_stanza_release(content_type); xmpp_stanza_add_child(iq, request); xmpp_stanza_release(request);