diff --git a/src/plugins/callbacks.c b/src/plugins/callbacks.c index ee49dc2a..36607066 100644 --- a/src/plugins/callbacks.c +++ b/src/plugins/callbacks.c @@ -177,9 +177,9 @@ callbacks_remove(const char* const plugin_name) void callbacks_close(void) { - g_hash_table_destroy(p_commands); - g_hash_table_destroy(p_timed_functions); g_hash_table_destroy(p_window_callbacks); + g_hash_table_destroy(p_timed_functions); + g_hash_table_destroy(p_commands); } void diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c index 2236e94f..7d43f3f4 100644 --- a/src/plugins/plugins.c +++ b/src/plugins/plugins.c @@ -95,9 +95,9 @@ _plugins_shutdown(void) c_shutdown(); #endif - autocompleters_destroy(); - plugin_themes_close(); plugin_settings_close(); + plugin_themes_close(); + autocompleters_destroy(); callbacks_close(); disco_close(); g_hash_table_destroy(plugins); @@ -399,7 +399,7 @@ plugins_reload(const char* const name, GString* error_message) return res; } -void +static void _plugins_unloaded_list_dir(const gchar* const dir, GSList** result) { GDir* plugins_dir = g_dir_open(dir, 0, NULL); diff --git a/src/plugins/python_plugins.c b/src/plugins/python_plugins.c index c999afa3..c25bb541 100644 --- a/src/plugins/python_plugins.c +++ b/src/plugins/python_plugins.c @@ -100,16 +100,13 @@ python_env_init(void) python_init_prof(); auto_gchar gchar* plugins_dir = files_get_data_path(DIR_PLUGINS); - GString* path = g_string_new("import sys\n"); - g_string_append(path, "sys.path.append(\""); - g_string_append(path, plugins_dir); - g_string_append(path, "/\")\n"); + auto_gchar gchar* path = g_strdup_printf( + "import sys\n" + "sys.path.append(\"%s/\")\n", plugins_dir); - PyRun_SimpleString(path->str); + PyRun_SimpleString(path); python_check_error(); - g_string_free(path, TRUE); - allow_python_threads(); } diff --git a/src/tools/http_upload.c b/src/tools/http_upload.c index 3b3945f3..2d051023 100644 --- a/src/tools/http_upload.c +++ b/src/tools/http_upload.c @@ -164,11 +164,6 @@ http_file_put(void* userdata) FILE* fh = NULL; auto_char char* err = NULL; - gchar* content_type_header; - // Optional headers - gchar* auth_header = NULL; - gchar* cookie_header = NULL; - gchar* expires_header = NULL; CURL* curl; CURLcode res; @@ -177,15 +172,14 @@ http_file_put(void* userdata) upload->bytes_sent = 0; pthread_mutex_lock(&lock); - gchar* msg = g_strdup_printf("Uploading '%s': 0%%", upload->filename); + auto_gchar gchar* msg = g_strdup_printf("Uploading '%s': 0%%", upload->filename); if (!msg) { msg = g_strdup(FALLBACK_MSG); } win_print_http_transfer(upload->window, msg, upload->put_url); - g_free(msg); auto_gchar gchar* cert_path = prefs_get_string(PREF_TLS_CERTPATH); - gchar* cafile = cafile_get_name(); + auto_gchar gchar* cafile = cafile_get_name(); gboolean insecure = FALSE; ProfAccount* account = accounts_get_account(session_get_account_name()); if (account) { @@ -201,7 +195,7 @@ http_file_put(void* userdata) curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT"); struct curl_slist* headers = NULL; - content_type_header = g_strdup_printf("Content-Type: %s", upload->mime_type); + auto_gchar gchar* content_type_header = g_strdup_printf("Content-Type: %s", upload->mime_type); if (!content_type_header) { content_type_header = g_strdup(FALLBACK_CONTENTTYPE_HEADER); } @@ -209,6 +203,7 @@ http_file_put(void* userdata) headers = curl_slist_append(headers, "Expect:"); // Optional headers + auto_gchar gchar* auth_header = NULL; if (upload->authorization) { auth_header = g_strdup_printf("Authorization: %s", upload->authorization); if (!auth_header) { @@ -216,6 +211,7 @@ http_file_put(void* userdata) } headers = curl_slist_append(headers, auth_header); } + auto_gchar gchar* cookie_header = NULL; if (upload->cookie) { cookie_header = g_strdup_printf("Cookie: %s", upload->cookie); if (!cookie_header) { @@ -223,6 +219,7 @@ http_file_put(void* userdata) } headers = curl_slist_append(headers, cookie_header); } + auto_gchar gchar* expires_header = NULL; if (upload->expires) { expires_header = g_strdup_printf("Expires: %s", upload->expires); if (!expires_header) { @@ -297,13 +294,8 @@ http_file_put(void* userdata) fclose(fh); } free(output.buffer); - g_free(content_type_header); - g_free(auth_header); - g_free(cookie_header); - g_free(expires_header); pthread_mutex_lock(&lock); - g_free(cafile); if (err) { gchar* msg; diff --git a/src/ui/console.c b/src/ui/console.c index 6a212f42..3816831f 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -160,12 +160,11 @@ cons_bad_cmd_usage(const char* const cmd) void cons_show_error(const char* const msg, ...) { - ProfWin* console = wins_get_console(); va_list arg; va_start(arg, msg); GString* fmt_msg = g_string_new(NULL); g_string_vprintf(fmt_msg, msg, arg); - win_println(console, THEME_ERROR, "-", "%s", fmt_msg->str); + win_println(wins_get_console(), THEME_ERROR, "-", "%s", fmt_msg->str); g_string_free(fmt_msg, TRUE); va_end(arg); diff --git a/src/ui/core.c b/src/ui/core.c index b5a2eb1a..9bd872a0 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -93,7 +93,6 @@ static void _ui_close(void) { g_timer_destroy(ui_idle_time); - endwin(); notifier_uninit(); cons_clear_alerts(); wins_destroy(); @@ -102,6 +101,7 @@ _ui_close(void) free_title_bar(); delwin(main_scr); delscreen(set_term(NULL)); + endwin(); } void diff --git a/src/xmpp/chat_session.c b/src/xmpp/chat_session.c index 9834e331..1c62c374 100644 --- a/src/xmpp/chat_session.c +++ b/src/xmpp/chat_session.c @@ -69,8 +69,8 @@ static void _chat_session_free(ChatSession* session) { if (session) { - free(session->barejid); free(session->resource); + free(session->barejid); free(session); } } diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index b8cc3aa5..efbd5f90 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -2571,7 +2571,8 @@ iq_send_stanza(xmpp_stanza_t* const stanza) if (plugin_text) { xmpp_send_raw_string(conn, "%s", plugin_text); } else { - xmpp_send_raw_string(conn, "%s", text); + /* libstrophe does the strlen for us, so simply always pass SIZE_MAX */ + xmpp_send_raw(conn, text, SIZE_MAX); } xmpp_free(connection_get_ctx(), text); } diff --git a/tests/unittests/test_common.c b/tests/unittests/test_common.c index b10f30bb..98eb712a 100644 --- a/tests/unittests/test_common.c +++ b/tests/unittests/test_common.c @@ -546,7 +546,7 @@ prof_occurrences_of_large_message_tests(void** state) char* haystack = malloc(haystack_sz); const char needle[] = "needle "; while (haystack_sz - haystack_cur > sizeof(needle)) { - memcpy(&haystack[haystack_cur], needle, sizeof(needle) - 1); + memcpy(&haystack[haystack_cur], needle, sizeof(needle)); expected = g_slist_append(expected, GINT_TO_POINTER(haystack_cur)); haystack_cur += sizeof(needle) - 1; }