Ethereal-dev: RE: [Ethereal-dev] ITU/ANSI TCAP dissector

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Michael Lum" <mlum@xxxxxxxxxxxxx>
Date: Thu, 11 Sep 2003 08:34:08 -0700
That was in the original file from Samuel Qu so I don't know why
he thought it was necessary to override it.

I believe the difference is this part:

    ret = asn1_octet_decode (asn1, &ch);
    if (ret != ASN1_ERR_NOERROR)
        return ret;
    if ((ch & 0x1f) != 0x1f)
    {
        *tag = ch;
        return ASN1_ERR_NOERROR;
    }
    else
    {
        *tag = ch >> 5;
    }

I don't know enough about ASN1 to recognize the significance of 0x1f.

-----Original Message-----
From: Guy Harris [mailto:guy@xxxxxxxxxxxx]
Sent: Thursday, September 11, 2003 1:16 AM
To: Michael Lum
Cc: Jeff Morriss; Ethereal Development List
Subject: Re: [Ethereal-dev] ITU/ANSI TCAP dissector


On Wed, Sep 10, 2003 at 09:32:40AM -0700, Michael Lum wrote:
> Here's mine as well.
>
> The file compiled perfectly clean on SPARC with gcc.

It still got some warnings - Jeff Morris' patches fixed them; the
functions

	dissect_ansi_tcap_reject
	dissect_ansi_tcap_re
	dissect_ansi_tcap_rr
	dissect_ansi_tcap_invoke
	dissect_tcap_invoke
	dissect_tcap_rr
	dissect_tcap_reject

need to return "void", not "int".

Also, what is the significance of "asn1_tag_decode_m()"?  The comment
says

/* to make the source file easy to be contributed , override this function
*/
/* so there is no need to modify asn1.c(with a bug) any more */

Does that mean that "asn1_tag_decode()" in asn1.c is buggy?  If so, then
it should be fixed, not overridden.