diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-06-06 10:32:19 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-06-06 10:32:19 +0000 |
commit | 5bb09a0c103bb6fa3ef6907507a894236e5b79e7 (patch) | |
tree | 4e19c49f2e83bd43eb6196d487d73fc440eed10b /epan/dissectors/packet-mbtcp.c | |
parent | 4295086a6fe184321cff70c49c007fe89ef8cab1 (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.c | 5 |
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; } |