Wireshark-bugs: [Wireshark-bugs] [Bug 2155] New: packet_ansi_tcap

Date: Wed, 2 Jan 2008 18:03:07 +0000 (GMT)
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2155

           Summary: packet_ansi_tcap
           Product: Wireshark
           Version: 0.99.7
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Major
          Priority: Low
         Component: Wireshark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: shmulik.bezalel@xxxxxxxxx


Build Information:
Version 0.99.7

Copyright 1998-2007 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled with GTK+ 2.12.3, with GLib 2.14.4, with WinPcap (version unknown),
with libz 1.2.3, with libpcre 6.4, with SMI 0.4.5, with ADNS, with Lua 5.1,
with
GnuTLS 1.6.1, with Gcrypt 1.2.3, with MIT Kerberos, with PortAudio PortAudio
V19-devel, with AirPcap.

Running on Windows XP Service Pack 2, build 2600, with WinPcap version 4.0.2
(packet.dll version 4.0.0.1040), based on libpcap version 0.9.5, without
AirPcap.

Built using Microsoft Visual C++ 6.0 build 8804

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
ansi_tcap_private.TransactionID_str is always NULL , and return result doesn't
continue to ansi map layer  

change 

static int
dissect_ansi_tcap_TransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {

    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset,
hf_index,
                                       NULL);

  return offset;
}

TO

static char TransactionID_str[sizeof(long) + 1];
static int
dissect_ansi_tcap_TransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {

        long TransactionID_long = 0;
        guint8 len = tvb_get_guint8(tvb , offset + 1);
        if(len == 0x04)
        {
                tvb_memcpy(tvb,(unsigned char *)&TransactionID_long , offset +
2 , 0x04);                       
                sprintf(TransactionID_str , "%ld" , TransactionID_long);
                ansi_tcap_private.TransactionID_str = TransactionID_str;
        }

    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset,
hf_index,
                                       NULL);

  return offset;
}

the change fixed the problem and now we continue to ansi map layer
BUT I don't understand why we need this hash.


-- 
Configure bugmail: http://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.