aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss@ulticom.com>2012-06-21 19:32:56 +0000
committerJeff Morriss <jeff.morriss@ulticom.com>2012-06-21 19:32:56 +0000
commit7a18a5e7b9d127e00831d4c55f7d31d8a5a82af0 (patch)
tree2554247594bc6109dbdc13779925f69bd583a703
parent4d00f428fd3827c2720c3f7d2e482a0012873244 (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.c5
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;
}
}