diff options
author | Luis Ontanon <luis.ontanon@gmail.com> | 2007-03-10 02:11:51 +0000 |
---|---|---|
committer | Luis Ontanon <luis.ontanon@gmail.com> | 2007-03-10 02:11:51 +0000 |
commit | 403fa20bf1ec0ab00a9e53704b608501ae2ca9c9 (patch) | |
tree | d1a391e23375229c0ef31b012ad5db627753b27c /epan/dissectors/packet-kerberos.c | |
parent | 9be42ac4dc0ecf32e40e053960d2fa698421bcb1 (diff) |
Make sure ENDTRY is evaluated.
On windows if ENDTRY is not evaluated after a exception is being thrown wireshark will crash in dissect_packet() while attempting to pop the last frame of the exception stack.
svn path=/trunk/; revision=21014
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index 23e307e6f9..b0b6d9d210 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -792,6 +792,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo, decrypted_data = g_malloc(length); for(ske = service_key_list; ske != NULL; ske = g_slist_next(ske)){ + gboolean do_continue = FALSE; sk = (service_key_t *) ske->data; des_fix_parity(DES3_KEY_SIZE, key, sk->contents); @@ -816,10 +817,12 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo, } CATCH (BoundsError) { tvb_free(encr_tvb); - continue; + do_continue = TRUE; } ENDTRY; + if (do_continue) continue; + data_len = item_len + offset - CONFOUNDER_PLUS_CHECKSUM; if ((int) item_len + offset > length) { tvb_free(encr_tvb); |