aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dfilter/dfilter.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-01-16 23:11:49 -0500
committerMichael Mann <mmann78@netscape.net>2015-01-18 00:28:53 +0000
commit86726f404a60003585d6a5f64f908b091bcac099 (patch)
tree91fa7b0b3c2b80d0cb9efa8cee25d95d5a1a2a4e /epan/dfilter/dfilter.c
parent0ad15f88ccf434e8210ca64bc99ceeb24a943eb3 (diff)
Trim down the use of ep_ memory in the display filter code.
Couldn't quite eliminate it completely, but it's much improved. Need to figure out where/when to free dfilter_error_msg. Change-Id: I10216e9546d38e83f69991ded8ec0b3fc8472035 Reviewed-on: https://code.wireshark.org/review/6591 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dfilter/dfilter.c')
-rw-r--r--epan/dfilter/dfilter.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dfilter/dfilter.c b/epan/dfilter/dfilter.c
index 96c13c2115..8e21d30853 100644
--- a/epan/dfilter/dfilter.c
+++ b/epan/dfilter/dfilter.c
@@ -216,6 +216,7 @@ dfilter_compile(const gchar *text, dfilter_t **dfp)
guint i;
/* XXX, GHashTable */
GPtrArray *deprecated;
+ gchar *temp_error_msg;
g_assert(dfp);
@@ -226,7 +227,10 @@ dfilter_compile(const gchar *text, dfilter_t **dfp)
dfilter_error_msg = NULL;
- if ( !( text = dfilter_macro_apply(text, &dfilter_error_msg) ) ) {
+ if ( !( text = dfilter_macro_apply(text, &temp_error_msg) ) ) {
+ /* Move the ep_ allocation up a layer */
+ dfilter_error_msg = ep_strdup(temp_error_msg);
+ wmem_free(NULL, temp_error_msg);
return FALSE;
}
@@ -350,6 +354,7 @@ dfilter_compile(const gchar *text, dfilter_t **dfp)
}
/* SUCCESS */
dfwork_free(dfw);
+ wmem_free(NULL, (char*)text);
return TRUE;
FAILURE:
@@ -362,6 +367,7 @@ FAILURE:
}
g_ptr_array_free(deprecated, TRUE);
dfilter_fail("Unable to parse filter string \"%s\".", text);
+ wmem_free(NULL, (char*)text);
*dfp = NULL;
return FALSE;