aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mbtcp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-06-06 10:32:19 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-06-06 10:32:19 +0000
commit5bb09a0c103bb6fa3ef6907507a894236e5b79e7 (patch)
tree4e19c49f2e83bd43eb6196d487d73fc440eed10b /epan/dissectors/packet-mbtcp.c
parent4295086a6fe184321cff70c49c007fe89ef8cab1 (diff)
From Roland Knall:
Modbus/TCP: Calculating the drop-out criteria for special data dissection fails. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5997 svn path=/trunk/; revision=37566
Diffstat (limited to 'epan/dissectors/packet-mbtcp.c')
-rw-r--r--epan/dissectors/packet-mbtcp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c
index c3e4c0021d..b27c58ae44 100644
--- a/epan/dissectors/packet-mbtcp.c
+++ b/epan/dissectors/packet-mbtcp.c
@@ -403,7 +403,10 @@ dissect_mbtcp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 f
reported_len = tvb_reported_length_remaining(tvb, payload_start);
- if ( ( payload_start + payload_len ) > reported_len ) {
+ if ( payload_start < 0 || ( payload_len + payload_start ) == 0 )
+ return;
+
+ if ( payload_len != reported_len ) {
proto_tree_add_bytes_format(tree, hf_modbus_data, tvb, payload_start, payload_len, NULL, "Data");
return;
}