diff options
author | Michael Mann <mmann78@netscape.net> | 2015-01-16 23:11:49 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-01-18 00:28:53 +0000 |
commit | 86726f404a60003585d6a5f64f908b091bcac099 (patch) | |
tree | 91fa7b0b3c2b80d0cb9efa8cee25d95d5a1a2a4e /epan/dfilter/dfilter.c | |
parent | 0ad15f88ccf434e8210ca64bc99ceeb24a943eb3 (diff) | |
download | wireshark-86726f404a60003585d6a5f64f908b091bcac099.tar.gz |
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.c | 8 |
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; |