diff options
author | Michael Mann <mmann78@netscape.net> | 2016-05-10 16:04:14 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-05-10 22:49:08 +0000 |
commit | 1dccd1ee072722fbe6d5e1a9d726a7e87d191f76 (patch) | |
tree | 4d4059e0eead7303c6d7420a3828332d26bd79fa /epan/print.c | |
parent | 931603c4b84a5e69e94e3bfd3c84332e664062ab (diff) |
Have fvalue_to_string_repr always return an (wmem) allocated buffer.
Previous patches converted all fvalue_to_string_repr calls to expect
an allocated buffer (and not a passed in one). Now changing signature
to force an allocated buffer. Added wmem in case that can be taken
advantage of within epan (and since the function signature was changing
anyway).
Change-Id: Ica1ac4a9a182ce0e73303856329e198d9d525b7b
Reviewed-on: https://code.wireshark.org/review/15343
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/print.c')
-rw-r--r-- | epan/print.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/epan/print.c b/epan/print.c index 566af2ee2b..6f8a7592e0 100644 --- a/epan/print.c +++ b/epan/print.c @@ -404,13 +404,13 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data) fputs("\" show=\"\" value=\"", pdata->fh); break; default: - dfilter_string = fvalue_to_string_repr(&fi->value, FTREPR_DISPLAY, fi->hfinfo->display, NULL); + dfilter_string = fvalue_to_string_repr(NULL, &fi->value, FTREPR_DISPLAY, fi->hfinfo->display); if (dfilter_string != NULL) { fputs("\" show=\"", pdata->fh); print_escaped_xml(pdata->fh, dfilter_string); } - g_free(dfilter_string); + wmem_free(NULL, dfilter_string); /* * XXX - should we omit "value" for any fields? @@ -1439,9 +1439,11 @@ gchar* get_node_field_value(field_info* fi, epan_dissect_t* edt) * FT_NONE can be checked when using -T fields */ return g_strdup("1"); default: - dfilter_string = fvalue_to_string_repr(&fi->value, FTREPR_DISPLAY, fi->hfinfo->display, NULL); + dfilter_string = fvalue_to_string_repr(NULL, &fi->value, FTREPR_DISPLAY, fi->hfinfo->display); if (dfilter_string != NULL) { - return dfilter_string; + gchar* ret = g_strdup(dfilter_string); + wmem_free(NULL, dfilter_string); + return ret; } else { return get_field_hex_value(edt->pi.data_src, fi); } |