aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2014-12-30 17:57:44 +0100
committerMartin Kaiser <wireshark@kaiser.cx>2014-12-30 17:04:33 +0000
commitf3f736c67f915c7a67176a100fac56d46226cb35 (patch)
tree112461bdb50ecab6af4084ff0bf7a374746f3e24 /epan
parent246f727789b3739a911c0cb4e4f1f5904ba13f75 (diff)
clean up the part where dissect_websocket() is called recursively
Change-Id: Ia94ddb2c4cb03fe5d1af9f8d316e1cdb18fe8283 Reviewed-on: https://code.wireshark.org/review/6143 Reviewed-by: Martin Kaiser <wireshark@kaiser.cx> Tested-by: Martin Kaiser <wireshark@kaiser.cx>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-websocket.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/dissectors/packet-websocket.c b/epan/dissectors/packet-websocket.c
index 637d6a93f9..0cddce5014 100644
--- a/epan/dissectors/packet-websocket.c
+++ b/epan/dissectors/packet-websocket.c
@@ -406,10 +406,13 @@ dissect_websocket(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
recurse_offset = payload_offset + payload_length;
if (length > recurse_offset) {
- recurse_length = dissect_websocket(tvb_new_subset_remaining(tvb, payload_offset+payload_length), pinfo, tree, data);
- if (pinfo->desegment_len) pinfo->desegment_offset += recurse_offset;
+ recurse_length = dissect_websocket(tvb_new_subset_remaining(tvb, recurse_offset), pinfo, tree, data);
+ if (pinfo->desegment_len)
+ pinfo->desegment_offset += recurse_offset;
+
return recurse_offset + recurse_length;
}
+
return recurse_offset;
}