aboutsummaryrefslogtreecommitdiffstats
path: root/packet-spnego.c
diff options
context:
space:
mode:
authorRichard Sharpe <sharpe@ns.aus.com>2003-06-01 20:34:20 +0000
committerRichard Sharpe <sharpe@ns.aus.com>2003-06-01 20:34:20 +0000
commit47817bcb26d93f40da5235d72510f17e5c2dac98 (patch)
tree37db18262d7b6dbb0b46d2edca9be1dd60a97bed /packet-spnego.c
parent63884147dd65056c0b01fb97b7c2b6ef78016bfe (diff)
Fix a small segmentation fault if we get an ASN.1 parse error, and
start to work on kerberos flags etc. Also prettied up the case where the responseToken was an empty string. svn path=/trunk/; revision=7767
Diffstat (limited to 'packet-spnego.c')
-rw-r--r--packet-spnego.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/packet-spnego.c b/packet-spnego.c
index 1fe8a4128f..581f61ae1d 100644
--- a/packet-spnego.c
+++ b/packet-spnego.c
@@ -5,7 +5,7 @@
* Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
* Copyright 2003, Richard Sharpe <rsharpe@richardsharpe.com>
*
- * $Id: packet-spnego.c,v 1.49 2003/05/26 20:44:20 guy Exp $
+ * $Id: packet-spnego.c,v 1.50 2003/06/01 20:34:20 sharpe Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1106,19 +1106,26 @@ dissect_spnego_responseToken(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
offset = hnd->offset;
- item = proto_tree_add_item(tree, hf_spnego_responsetoken, tvb, offset,
- nbytes, FALSE);
+ item = proto_tree_add_item(tree, hf_spnego_responsetoken, tvb, offset -2 ,
+ nbytes + 2, FALSE);
subtree = proto_item_add_subtree(item, ett_spnego_responsetoken);
+
/*
* Now, we should be able to dispatch after creating a new TVB.
+ * However, we should make sure that there is something in the
+ * response token ...
*/
- token_tvb = tvb_new_subset(tvb, offset, nbytes, -1);
- if (next_level_dissector)
- call_dissector(next_level_dissector, token_tvb, pinfo, subtree);
-
+ if (nbytes) {
+ token_tvb = tvb_new_subset(tvb, offset, nbytes, -1);
+ if (next_level_dissector)
+ call_dissector(next_level_dissector, token_tvb, pinfo, subtree);
+ }
+ else {
+ proto_tree_add_text(subtree, tvb, offset-2, 2, "<Empty String>");
+ }
hnd->offset += nbytes; /* Update this ... */
done:
@@ -1660,4 +1667,9 @@ proto_reg_handoff_spnego(void)
gssapi_init_oid("1.2.840.113554.1.2.2", proto_spnego_krb5, ett_spnego_krb5,
spnego_krb5_handle, spnego_krb5_wrap_handle,
"KRB5 - Kerberos 5");
+
+ /*
+ * Find the data handle for some calls
+ */
+ data_handle = find_dissector("data");
}