aboutsummaryrefslogtreecommitdiffstats
path: root/epan/print.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-05-10 16:04:14 -0400
committerMichael Mann <mmann78@netscape.net>2016-05-10 22:49:08 +0000
commit1dccd1ee072722fbe6d5e1a9d726a7e87d191f76 (patch)
tree4d4059e0eead7303c6d7420a3828332d26bd79fa /epan/print.c
parent931603c4b84a5e69e94e3bfd3c84332e664062ab (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.c10
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);
}