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

Reply via email to