diff options
author | Michael Mann <mmann78@netscape.net> | 2016-07-19 22:53:28 -0400 |
---|---|---|
committer | Evan Huus <eapache@gmail.com> | 2016-07-20 22:12:56 +0000 |
commit | be1398c17ca1d5b203a930d9254125d602830aef (patch) | |
tree | 611a6c211931f45a32d65199fa65c4a5a36fec2f /epan/dissectors/packet-pdcp-lte.c | |
parent | e07b4aa6670f57be7f613eec9d8d47712d1cfa86 (diff) |
Convert uses of g_alloced data with tvb_new_child_real_data to use pinfo->pool instead.
Aldo update documentation to suggest using wmem pinfo->pool instead of glib memory
Change-Id: I5d34cc6c1515aa9f0d57784b38da501ffcb95ccc
Reviewed-on: https://code.wireshark.org/review/16551
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-pdcp-lte.c')
-rw-r--r-- | epan/dissectors/packet-pdcp-lte.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c index 8a1fd7fe13..b98316aac8 100644 --- a/epan/dissectors/packet-pdcp-lte.c +++ b/epan/dissectors/packet-pdcp-lte.c @@ -1540,8 +1540,7 @@ static tvbuff_t *decipher_payload(tvbuff_t *tvb, packet_info *pinfo, int *offset /* Extract the encrypted data into a buffer */ payload_length = tvb_captured_length_remaining(tvb, *offset); - decrypted_data = (guint8 *)g_malloc0(payload_length); - tvb_memcpy(tvb, decrypted_data, *offset, payload_length); + decrypted_data = (guint8 *)tvb_memdup(pinfo->pool, tvb, *offset, payload_length); /* Decrypt the actual data */ gcrypt_err = gcry_cipher_decrypt(cypher_hd, @@ -1549,7 +1548,6 @@ static tvbuff_t *decipher_payload(tvbuff_t *tvb, packet_info *pinfo, int *offset NULL, 0); if (gcrypt_err != 0) { gcry_cipher_close(cypher_hd); - g_free(decrypted_data); return tvb; } @@ -1563,8 +1561,7 @@ static tvbuff_t *decipher_payload(tvbuff_t *tvb, packet_info *pinfo, int *offset if (pdu_security_settings->ciphering == eea1) { /* Extract the encrypted data into a buffer */ payload_length = tvb_captured_length_remaining(tvb, *offset); - decrypted_data = (guint8 *)g_malloc0(payload_length+4); - tvb_memcpy(tvb, decrypted_data, *offset, payload_length); + decrypted_data = (guint8 *)tvb_memdup(pinfo->pool, tvb, *offset, payload_length); /* Do the algorithm */ snow3g_f8(pdu_security_settings->cipherKey, @@ -1577,7 +1574,6 @@ static tvbuff_t *decipher_payload(tvbuff_t *tvb, packet_info *pinfo, int *offset /* Create tvb for resulting deciphered sdu */ decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, payload_length, payload_length); - tvb_set_free_cb(decrypted_tvb, g_free); add_new_data_source(pinfo, decrypted_tvb, "Deciphered Payload"); /* Return deciphered data, i.e. beginning of new tvb */ |