Ethereal-users: Re: Re: [Ethereal-users] Issue with decode of H.245 UserInputIndication -Malform
Martin Regner wrote:
>Ronnie Sahlberg wrote:
> > Can you provide a capture showing the problem with the decode?
> >
> >
> > > Trying out the new H.245 support in Ethereal 0.9.15 and may have found an
> > > issue with the decoding of H.245 UserInputIndication messages (UII). The
> > > decode reports a malformed packet:
> > >
> > > H.245
> > > MultimediaSystemControlMessage
> > > PDU Type: .11. .... : Indication (3)
> > > IndicationMessage
> > > Indication Type: .... 1101 : UserInputIndication (13)
> > > UserInputIndication
> > > signal
> > > UserInputIndication_signal
> > > [Malformed Packet: H245]
> > >
> > > I believe the packet is correctly formed because the UII is successfully
> > > decoded by the far end gateway.
> > >
>
>
> Yes there is a problem with Signal. Signal element is always an IA5 String with length 1, not a variable length. There is a fault in h245.c.
>
ooops ... not IA5String, but restricted character string
> I can send a sample capture later on. I cannot find the capture right now.
>
> I sent a patch for solving this and some other issues a couple of weeks ago. Andreas Sikkema didn't have time to look at it at that time.
>
> Some part of my patch is not needed anymore, due to changes done by someone else (regarding NonStandardData).
>
> I'm out travelling right now, so I haven't been able to look more into the IA5String stuff that I tried to patch also with my patch.
>
I have attached a sample capture and a patch that I think will solve the problem (It´s one of the patches I sent a couple of weeks ago).
/Martin
Attachment:
extract.pcap
Description: Binary data
--- packet-h245.c 2003-09-06 03:17:10.000000000 +0200
+++ packet-h245.c_martin 2003-09-21 14:36:28.000000000 +0200
@@ -18418,7 +18418,7 @@
static int
dissect_h245_signalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
{
- offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 128, "!#*0123456789ABCD", 17);
+ offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 1, "!#*0123456789ABCD", 17);
return offset;
}