forked from osmocom/wireshark
From Steve Osselton:
Fix for MIOP dissector for GIOP < 1.2. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3892 svn path=/trunk/; revision=29805
This commit is contained in:
parent
0ef69d922a
commit
1ad55d8c02
|
@ -3284,6 +3284,7 @@ dissect_giop_request_1_1 (tvbuff_t * tvb, packet_info * pinfo,
|
|||
gchar *print_requesting_principal;
|
||||
guint8 response_expected;
|
||||
gchar *reserved;
|
||||
gchar miop[4];
|
||||
proto_tree *request_tree = NULL;
|
||||
proto_item *tf;
|
||||
|
||||
|
@ -3344,16 +3345,39 @@ dissect_giop_request_1_1 (tvbuff_t * tvb, packet_info * pinfo,
|
|||
g_free(reserved);
|
||||
}
|
||||
|
||||
/* Prior to GIOP 1.2, MIOP profile address prefixed with 'MIOP' */
|
||||
|
||||
miop[0] = get_CDR_octet (tvb, &offset);
|
||||
miop[1] = get_CDR_octet (tvb, &offset);
|
||||
miop[2] = get_CDR_octet (tvb, &offset);
|
||||
miop[3] = get_CDR_octet (tvb, &offset);
|
||||
|
||||
if (miop[0] == 'M' && miop[1] == 'I' && miop[2] == 'O' && miop[3] == 'P')
|
||||
{
|
||||
if (tree)
|
||||
{
|
||||
proto_tree_add_text (request_tree, tvb, offset - 4, 4,
|
||||
"Magic number: %s", MIOP_MAGIC);
|
||||
}
|
||||
|
||||
decode_TaggedProfile (tvb, pinfo, request_tree, &offset, GIOP_HEADER_SIZE,
|
||||
stream_is_big_endian, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Wind back if not MIOP profile */
|
||||
|
||||
offset -= 4;
|
||||
|
||||
/* Length of object_key sequence */
|
||||
objkey_len = get_CDR_ulong(tvb, &offset, stream_is_big_endian,GIOP_HEADER_SIZE);
|
||||
|
||||
objkey_len = get_CDR_ulong (tvb, &offset, stream_is_big_endian,
|
||||
GIOP_HEADER_SIZE);
|
||||
|
||||
if (tree)
|
||||
{
|
||||
proto_tree_add_text (request_tree, tvb, offset-4, 4,
|
||||
/**/ "Object Key length: %u", objkey_len);
|
||||
"Object Key length: %u", objkey_len);
|
||||
}
|
||||
|
||||
if (objkey_len > 0)
|
||||
|
@ -3362,10 +3386,10 @@ dissect_giop_request_1_1 (tvbuff_t * tvb, packet_info * pinfo,
|
|||
|
||||
if(tree)
|
||||
{
|
||||
proto_tree_add_item(request_tree, hf_giop_objekt_key, tvb, offset - objkey_len, objkey_len, FALSE);
|
||||
|
||||
proto_tree_add_item (request_tree, hf_giop_objekt_key, tvb,
|
||||
offset - objkey_len, objkey_len, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
#define GIOP_HEADER_SIZE 12
|
||||
#define GIOP_MAGIC "GIOP"
|
||||
#define MIOP_MAGIC "MIOP"
|
||||
|
||||
typedef struct Version {
|
||||
guint8 major;
|
||||
|
|
Loading…
Reference in New Issue