diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-10-06 19:15:58 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-10-06 19:15:58 +0000 |
commit | bc9a809b65612063457f882a2d732707879ecb01 (patch) | |
tree | 012cd52cad567bcc246d8749709f1b72ebe86356 /asn1 | |
parent | 0f4d4344dd770cf06b0c4aaa9f945acc99f314d5 (diff) |
From Didier Gautheron:
ep memory can't be used for tvbs defined as data_source.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4054
svn path=/trunk/; revision=30376
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/spnego/packet-spnego-template.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/asn1/spnego/packet-spnego-template.c b/asn1/spnego/packet-spnego-template.c index d88e58a41e..527d6fcd71 100644 --- a/asn1/spnego/packet-spnego-template.c +++ b/asn1/spnego/packet-spnego-template.c @@ -637,6 +637,7 @@ decrypt_gssapi_krb_arcfour_wrap(proto_tree *tree, packet_info *pinfo, tvbuff_t * pinfo->gssapi_decrypted_tvb=tvb_new_child_real_data(tvb, output_message_buffer, ret, ret); + tvb_set_free_cb(pinfo->gssapi_decrypted_tvb, g_free); add_new_data_source(pinfo, pinfo->gssapi_decrypted_tvb, "Decrypted GSS-Krb5"); return; } @@ -705,12 +706,11 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree _U_, packet_info *pinfo _U_, tvbuff return; } - rotated = ep_alloc(tvb_length(tvb)); - - tvb_memcpy(tvb, rotated, 0, tvb_length(tvb)); + rotated = tvb_memdup(tvb, 0, tvb_length(tvb)); res = rrc_rotate(rotated, tvb_length(tvb), rrc, TRUE); next_tvb=tvb_new_child_real_data(tvb, rotated, tvb_length(tvb), tvb_reported_length(tvb)); + tvb_set_free_cb(next_tvb, g_free); add_new_data_source(pinfo, next_tvb, "GSSAPI CFX"); output = decrypt_krb5_data(tree, pinfo, usage, next_tvb, @@ -719,7 +719,7 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree _U_, packet_info *pinfo _U_, tvbuff if (output) { char *outdata; - outdata = ep_alloc(tvb_length(tvb)); + outdata = g_malloc(tvb_length(tvb)); memcpy(outdata, output, tvb_length(tvb)); g_free(output); @@ -728,6 +728,7 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree _U_, packet_info *pinfo _U_, tvbuff datalen-16, datalen-16); add_new_data_source(pinfo, pinfo->gssapi_decrypted_tvb, "Decrypted GSS-Krb5"); + tvb_set_free_cb(pinfo->gssapi_decrypted_tvb, g_free); return; } return; |