Hi,

this patch add correct freing of temp string in compositing of filter expression.

Jirka Novak

P.S. Thanks for /* XXX */ note in source
Index: ethereal/gtk/main.c
===================================================================
RCS file: /cvsroot/ethereal/gtk/main.c,v
retrieving revision 1.229
diff -u -r1.229 main.c
--- main.c      2002/01/13 20:35:11     1.229
+++ main.c      2002/01/17 13:34:27
@@ -233,24 +233,24 @@
     filter_te = gtk_object_get_data(GTK_OBJECT(data), E_DFILTER_TE_KEY);
     g_assert(filter_te);
 
-    ptr = gtk_entry_get_text(GTK_ENTRY(filter_te));
+    ptr = gtk_editable_get_chars(GTK_EDITABLE(filter_te),0,-1);
 
     switch (action&MATCH_SELECTED_MASK) {
 
     case MATCH_SELECTED_REPLACE:
-       ptr = text;
+       ptr = g_strdup(text);
        break;
 
     case MATCH_SELECTED_AND:
        if ((!ptr) || (0 == strlen(ptr)))
-           ptr = text;
+           ptr = g_strdup(text);
        else
            ptr = g_strconcat("(", ptr, ") && (", text, ")", NULL);
        break;
 
     case MATCH_SELECTED_OR:
        if ((!ptr) || (0 == strlen(ptr)))
-           ptr = text;
+           ptr = g_strdup(text);
        else
            ptr = g_strconcat("(", ptr, ") || (", text, ")", NULL);
        break;
@@ -284,9 +284,9 @@
     if (action&MATCH_SELECTED_APPLY_NOW)
        filter_packets(&cfile, ptr);
 
-    /* Don't g_free(text) here. filter_packets() will do it the next time
+    /* Don't g_free(ptr) here. filter_packets() will do it the next time
        it's called. */
-    /* XXX - what about ptr? */
+    g_free(text);
 }
 
 void

Reply via email to