diff options
author | Gerald Combs <gerald@wireshark.org> | 2009-04-22 17:42:47 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2009-04-22 17:42:47 +0000 |
commit | 180852ed7c715630c9c413cc51af104583bc4e3b (patch) | |
tree | 64c2796dc8558daa935a849657352fec9ff06441 /epan/dissectors/packet-rpc.c | |
parent | 1913c70d1a1231cbfdc8fa002fc311be12b72c7c (diff) |
From Mark Cave-Ayland: Fix a crash in the PCNFSD dissector.
From me: Apply Mark's fix to the ident string. Add public #defines for
the special strings that dissect_rpc_* might return and use them in
PCNFSD. Replace a manual buffer allocation with ep_strdup_printf.
svn path=/trunk/; revision=28128
Diffstat (limited to 'epan/dissectors/packet-rpc.c')
-rw-r--r-- | epan/dissectors/packet-rpc.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c index 1426b8f22c..6aa7d88376 100644 --- a/epan/dissectors/packet-rpc.c +++ b/epan/dissectors/packet-rpc.c @@ -626,24 +626,21 @@ dissect_rpc_opaque_data(tvbuff_t *tvb, int offset, char *formatted; formatted = format_text(string_buffer, strlen(string_buffer)); - /* alloc maximum data area */ -#define STRING_BUFFER_PRINT_MAX_LEN ((guint) strlen(formatted)+12+1) - string_buffer_print = (char*)ep_alloc(STRING_BUFFER_PRINT_MAX_LEN); /* copy over the data and append <TRUNCATED> */ - g_snprintf(string_buffer_print, STRING_BUFFER_PRINT_MAX_LEN, "%s<TRUNCATED>", formatted); + string_buffer_print=ep_strdup_printf("%s%s", formatted, RPC_STRING_TRUNCATED); } else { - string_buffer_print="<DATA><TRUNCATED>"; + string_buffer_print=RPC_STRING_DATA RPC_STRING_TRUNCATED; } } else { if (string_data) { string_buffer_print = ep_strdup(format_text(string_buffer, strlen(string_buffer))); } else { - string_buffer_print="<DATA>"; + string_buffer_print=RPC_STRING_DATA; } } } else { - string_buffer_print="<EMPTY>"; + string_buffer_print=RPC_STRING_EMPTY; } if (tree) { |