Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-bugs: [Wireshark-bugs] [Bug 1670] New: bacapp.c: BACnetEventTransitionBits decoded as

Date: Thu, 28 Jun 2007 10:49:12 +0000 (GMT)
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1670

           Summary: bacapp.c: BACnetEventTransitionBits decoded as
                    Enumerated instead of Bit String
           Product: Wireshark
           Version: 0.99.5
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Low
         Component: Wireshark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: rudolf.weidmann@xxxxxxxxxxx


Build Information:
wireshark 0.99.5 (SVN Rev 20677)

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.10.7, with GLib 2.12.7, with WinPcap (version unknown),
with libz 1.2.3, with libpcre 6.4, with Net-SNMP 5.4, 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
(packet.dll version 4.0.0.755), based on libpcap version 0.9.5, without AirPcap


Built using Microsoft Visual C++ 6.0 build 8804

--
acknowledgedTransitions and eventEnable (both of Type
BACnetEventTransitionBits) in GetEventInformation-ACK are decoded wrongly as
Enumerated values.

The following code snippet out of bacapp.c shows (by arrows) where probably
fBitStringTagVS(..) should be called instead of fEnumeratedTag(...).

static guint
flistOfEventSummaries (tvbuff_t *tvb, proto_tree *tree, guint offset)
{
        guint lastoffset = 0;
        guint8 tag_no, tag_info;
        guint32 lvt;

        while ((tvb_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { 
/* exit loop if nothing happens inside */
                lastoffset = offset;
                switch (fTagNo(tvb, offset)) {
                case 0: /* ObjectId */
                        offset = fObjectIdentifier (tvb, tree, offset);
                        break;
                case 1: /* eventState */
                        offset = fEnumeratedTag (tvb, tree, offset,
                                "event State: ", BACnetEventStateFilter);
                        break;
                case 2: /* acknowledgedTransitions */
--------->              offset = fEnumeratedTag (tvb, tree, offset,
                                "acknowledged Transitions: ",
BACnetEventTransitionBits);
                        break;
                case 3: /* eventTimeStamps */
                        offset += fTagHeaderTree (tvb, tree, offset, &tag_no,
&tag_info, &lvt);
                        offset = fTimeStamp (tvb, tree, offset);
                        offset = fTimeStamp (tvb, tree, offset);
                        offset = fTimeStamp (tvb, tree, offset);
                        offset += fTagHeaderTree (tvb, tree, offset, &tag_no,
&tag_info, &lvt);
                        break;
                case 4: /* notifyType */
                        offset = fEnumeratedTag (tvb, tree, offset,
                                "Notify Type: ", BACnetNotifyType);
                        break;
                case 5: /* eventEnable */
--------->              offset = fEnumeratedTag (tvb, tree, offset,
                                "event Enable: ", BACnetEventTransitionBits);
                        break;
                case 6: /* eventPriorities */
                        offset += fTagHeaderTree (tvb, tree, offset, &tag_no,
&tag_info, &lvt);
                        offset = fUnsignedTag (tvb, tree, offset, "event
Priority: ");
                        offset = fUnsignedTag (tvb, tree, offset, "event
Priority: ");
                        offset = fUnsignedTag (tvb, tree, offset, "event
Priority: ");
                        offset += fTagHeaderTree (tvb, tree, offset, &tag_no,
&tag_info, &lvt);
                        lastoffset = offset;
                        break;
                default:
                        return offset;
                        break;
                }
        }
        return offset;
}


-- 
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.