Updating branch refs/heads/master to 9c7ea8858e8ae81a124e9730de7b58784cef9ab1 (commit) from 04f4fed48ce7ef80db04c9c5a21a9235ee366f7e (commit)
commit 9c7ea8858e8ae81a124e9730de7b58784cef9ab1 Author: Enrico Tröger <enrico.troe...@uvena.de> Date: Mon May 20 14:33:04 2013 +0200 After clearing the query_buffer, set it to NULL (bug #10101) This is a very weak and not really sufficient fix for concurrent code execution. lib/dictd.c | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/dictd.c b/lib/dictd.c index 8610fda..e97a5d6 100644 --- a/lib/dictd.c +++ b/lib/dictd.c @@ -363,6 +363,13 @@ static gint process_response_content(DictData *dd, gchar **lines, gint line_no, } +static void clear_query_buffer(DictData *dd) +{ + g_free(dd->query_buffer); + dd->query_buffer = NULL; +} + + static gboolean process_server_response(DictData *dd) { gint max_lines, i; @@ -383,14 +390,14 @@ static gboolean process_server_response(DictData *dd) case SERVER_NOT_READY: { dict_gui_status_add(dd, _("The server is not ready.")); - g_free(dd->query_buffer); + clear_query_buffer(dd); return FALSE; } case UNKNOWN_DATABASE: { dict_gui_status_add(dd, _("Invalid dictionary specified. Please check your preferences.")); - g_free(dd->query_buffer); + clear_query_buffer(dd); return FALSE; } } @@ -398,7 +405,7 @@ static gboolean process_server_response(DictData *dd) if (! NZV(dd->query_buffer)) { dict_gui_status_add(dd, _("Unknown error while querying the server.")); - g_free(dd->query_buffer); + clear_query_buffer(dd); return FALSE; } @@ -421,7 +428,7 @@ static gboolean process_server_response(DictData *dd) TAG_ERROR, TAG_BOLD, NULL); dict_gui_status_add(dd, "%s", tmp); g_free(tmp); - g_free(dd->query_buffer); + clear_query_buffer(dd); /* if we had no luck searching a word, maybe we have a typo so try searching with * spell check and offer a Web search*/ @@ -454,7 +461,7 @@ static gboolean process_server_response(DictData *dd) else if (strncmp("150", answer, 3) != 0 && dd->query_status != NOTHING_FOUND) { dict_gui_status_add(dd, _("Unknown error while querying the server.")); - g_free(dd->query_buffer); + clear_query_buffer(dd); return FALSE; } defs_found = atoi(answer + 4); @@ -472,7 +479,7 @@ static gboolean process_server_response(DictData *dd) max_lines = g_strv_length(lines); if (lines == NULL || max_lines == 0) { - g_free(dd->query_buffer); + clear_query_buffer(dd); return FALSE; } @@ -485,7 +492,7 @@ static gboolean process_server_response(DictData *dd) i = process_response_content(dd, lines, i, max_lines, header, body); } g_strfreev(lines); - g_free(dd->query_buffer); + clear_query_buffer(dd); g_string_free(header, TRUE); g_string_free(body, TRUE); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits