diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-01-18 12:43:37 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-01-18 12:43:37 +0000 |
commit | f3ad87485b5589e9a70de78d34ec9123d46097a2 (patch) | |
tree | ffd05b6b924311ca1b2c6522b7ca0a7889656744 /epan/dissectors/packet-skinny.c | |
parent | 17df7f823e3232ac8057b2dd8762910c52b02b4b (diff) |
Fix for bug 3192:
Version 17 of the Skinny protocol seems to report its version number in a previously reserved
header field. The dissector now accepts this, even though it can't dissect all new messages yet.
svn path=/trunk/; revision=27258
Diffstat (limited to 'epan/dissectors/packet-skinny.c')
-rw-r--r-- | epan/dissectors/packet-skinny.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/epan/dissectors/packet-skinny.c b/epan/dissectors/packet-skinny.c index 0cabb8b76c..f39baa7af7 100644 --- a/epan/dissectors/packet-skinny.c +++ b/epan/dissectors/packet-skinny.c @@ -2552,18 +2552,18 @@ dissect_skinny(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * SKINNY-Packet: {Header(Size, Reserved)|Data(MessageID, Message-Data)} */ /* Header fields */ - volatile guint32 hdr_data_length; - guint32 hdr_reserved; + guint32 hdr_data_length; + guint32 hdr_version; /* check, if this is really an SKINNY packet, they start with a length + 0 */ /* get relevant header information */ hdr_data_length = tvb_get_letohl(tvb, 0); - hdr_reserved = tvb_get_letohl(tvb, 4); + hdr_version = tvb_get_letohl(tvb, 4); /* data_size = MIN(8+hdr_data_length, tvb_length(tvb)) - 0xC; */ - if (hdr_data_length < 4 || hdr_reserved != 0) { + if (hdr_data_length < 4 || (hdr_version != 0 && hdr_version != 0x11)) { /* Not an SKINNY packet, just happened to use the same port */ return FALSE; } |