diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-12-30 18:07:32 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-12-30 17:18:45 +0000 |
commit | 935c8bf87b3639f2ad4bd393746e06246e66ad69 (patch) | |
tree | 0a854fd50cba5bb050aaa04a1bf1f11b459c59f1 /epan/dissectors/packet-websocket.c | |
parent | f3f736c67f915c7a67176a100fac56d46226cb35 (diff) |
Websocket: use pinfo pool and not packet one for the unmasked data tvb
As indicated in README.wmem, pinfo pool must be used for anything that might
end up being passed to add_new_data_source
Change-Id: I4a6396fc52e6c70c771390f502d58199c38c172a
Reviewed-on: https://code.wireshark.org/review/6144
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-websocket.c')
-rw-r--r-- | epan/dissectors/packet-websocket.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/dissectors/packet-websocket.c b/epan/dissectors/packet-websocket.c index 0cddce5014..98eaf57378 100644 --- a/epan/dissectors/packet-websocket.c +++ b/epan/dissectors/packet-websocket.c @@ -131,7 +131,7 @@ static heur_dissector_list_t heur_subdissector_list; #define MAX_UNMASKED_LEN (1024 * 256) static tvbuff_t * -tvb_unmasked(tvbuff_t *tvb, const guint offset, guint payload_length, const guint8 *masking_key) +tvb_unmasked(tvbuff_t *tvb, packet_info *pinfo, const guint offset, guint payload_length, const guint8 *masking_key) { gchar *data_unmask; @@ -139,7 +139,7 @@ tvb_unmasked(tvbuff_t *tvb, const guint offset, guint payload_length, const guin const guint8 *data_mask; guint unmasked_length = payload_length > MAX_UNMASKED_LEN ? MAX_UNMASKED_LEN : payload_length; - data_unmask = (gchar *)wmem_alloc(wmem_packet_scope(), unmasked_length); + data_unmask = (gchar *)wmem_alloc(pinfo->pool, unmasked_length); data_mask = tvb_get_ptr(tvb, offset, unmasked_length); /* Unmasked(XOR) Data... */ for(i=0; i < unmasked_length; i++) { @@ -163,7 +163,7 @@ dissect_websocket_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p ti = proto_tree_add_item(ws_tree, hf_ws_payload, tvb, offset, payload_length, ENC_NA); pl_tree = proto_item_add_subtree(ti, ett_ws_pl); if (mask) { - payload_tvb = tvb_unmasked(tvb, offset, payload_length, masking_key); + payload_tvb = tvb_unmasked(tvb, pinfo, offset, payload_length, masking_key); tvb_set_child_real_data_tvbuff(tvb, payload_tvb); add_new_data_source(pinfo, payload_tvb, payload_length > tvb_captured_length(payload_tvb) ? "Unmasked Data (truncated)" : "Unmasked Data"); ti = proto_tree_add_item(ws_tree, hf_ws_payload_unmask, payload_tvb, offset, payload_length, ENC_NA); |