diff options
author | Michael Mann <mmann78@netscape.net> | 2016-08-13 20:41:55 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-08-14 02:37:46 +0000 |
commit | 7c66a6b8dc8f32c9dd571884ac59bb0db7ee64b6 (patch) | |
tree | 36b61358c07dfcc673ad1a75148b48798b18eb8f /epan/dissectors/packet-dcerpc.c | |
parent | c0f24bdf6c255068d3de386b00c1d0db3041a98f (diff) |
dcerpc: Check dissect_ndr_ucvarray_core when looping over elements that we're incrementing offset.
Bug: 12720
Change-Id: Ib9c9eb2e60c35b23b4c6b4898b036bcdc442fc84
Reviewed-on: https://code.wireshark.org/review/17041
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index b1d8cebe19..750f7ed6d1 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -2414,7 +2414,11 @@ dissect_ndr_ucvarray_core(tvbuff_t *tvb, gint offset, packet_info *pinfo, pinfo, tree, di, drep); } else if (fnct_bytes) { for (i=0 ;i<di->array_actual_count; i++) { + old_offset = offset; offset = (*fnct_bytes)(tvb, offset, pinfo, tree, di, drep); + /* Make sure we're moving forward */ + if (old_offset >= offset) + break; } } } |