diff options
author | Jeff Morriss <jeff.morriss@ulticom.com> | 2012-06-21 19:32:56 +0000 |
---|---|---|
committer | Jeff Morriss <jeff.morriss@ulticom.com> | 2012-06-21 19:32:56 +0000 |
commit | 7a18a5e7b9d127e00831d4c55f7d31d8a5a82af0 (patch) | |
tree | 2554247594bc6109dbdc13779925f69bd583a703 | |
parent | 4d00f428fd3827c2720c3f7d2e482a0012873244 (diff) |
From Richard Sharpe via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7387 :
Don't break/return out of a TRY/CATCH.
svn path=/trunk/; revision=43434
-rw-r--r-- | epan/dissectors/packet-windows-common.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/epan/dissectors/packet-windows-common.c b/epan/dissectors/packet-windows-common.c index 35a78c0aa0..64f1804ec0 100644 --- a/epan/dissectors/packet-windows-common.c +++ b/epan/dissectors/packet-windows-common.c @@ -2363,6 +2363,7 @@ dissect_nt_acl(tvbuff_t *tvb, int offset, packet_info *pinfo, guint16 revision; guint32 volatile num_aces; gboolean missing_data = FALSE; + gboolean bad_ace = FALSE; if(parent_tree){ item = proto_tree_add_text(parent_tree, tvb, offset, -1, @@ -2408,7 +2409,7 @@ dissect_nt_acl(tvbuff_t *tvb, int offset, packet_info *pinfo, tvb, offset, 4, num_aces); offset += 4; - while(num_aces-- && !missing_data){ + while(num_aces-- && !missing_data && !bad_ace) { pre_ace_offset = offset; TRY { @@ -2417,7 +2418,7 @@ dissect_nt_acl(tvbuff_t *tvb, int offset, packet_info *pinfo, /* * Bogus ACE, with a length < 4. */ - break; + bad_ace = TRUE; } } |