diff options
author | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2006-03-25 16:32:46 +0000 |
---|---|---|
committer | Graeme Lunt <graeme.lunt@smhs.co.uk> | 2006-03-25 16:32:46 +0000 |
commit | 011ced394ca3be235d0c60275053a816c8731ec2 (patch) | |
tree | 2baf58b8a7b5da66da6f05ac8aaee4658a65c1f4 /epan/dissectors | |
parent | 719b8effbeef158dc5d8f4f1aac67d207dcbf3f1 (diff) |
Support for Session Extended User Data and IMPLICIT APPLICATION tagged bitstrings
svn path=/trunk/; revision=17726
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-ber.c | 9 | ||||
-rw-r--r-- | epan/dissectors/packet-ses.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c index 6625da1c3b..b41e6e1297 100644 --- a/epan/dissectors/packet-ber.c +++ b/epan/dissectors/packet-ber.c @@ -2142,7 +2142,14 @@ int dissect_ber_bitstring(gboolean implicit_tag, packet_info *pinfo, proto_tree end_offset = offset + len; /* sanity check: we only handle Universal BitSrings */ - if(!implicit_tag) { + + /* for an IMPLICIT APPLICATION tag asn2eth seems to call this + function with implicit_tag = FALSE. BER_FLAGS_NOOWNTAG was + set so the APPLICATION tag was still present. + So here we relax it for APPLICATION tags. CONTEXT tags may + still cause a problem. */ + + if(!implicit_tag && (class!=BER_CLASS_APP)) { if( (class!=BER_CLASS_UNI) ||(tag!=BER_UNI_TAG_BITSTRING) ){ tvb_ensure_bytes_exist(tvb, offset-2, 2); diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c index b77e3c6bd4..b05b2401fa 100644 --- a/epan/dissectors/packet-ses.c +++ b/epan/dissectors/packet-ses.c @@ -918,6 +918,8 @@ dissect_parameters(tvbuff_t *tvb, int offset, guint16 len, proto_tree *tree, switch(param_type) { case Extended_User_Data: + call_pres_dissector(tvb, offset, param_len, + pinfo, tree, param_tree, session); break; case User_Data: @@ -973,6 +975,7 @@ dissect_spdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, type = tvb_get_guint8(tvb, offset); session.spdu_type = type; session.abort_type = SESSION_NO_ABORT; + session.ros_op = 0; if (tokens) { if (check_col(pinfo->cinfo, COL_INFO)) |