Wireshark-bugs: [Wireshark-bugs] [Bug 3432] New: GSM SMS UDH fill bits incorrect
Date: Wed, 22 Apr 2009 12:12:26 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3432

           Summary: GSM SMS UDH fill bits incorrect
           Product: Wireshark
           Version: 1.0.7
          Platform: Other
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Medium
         Component: Wireshark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: ames.lai@xxxxxxxxx


Build Information:
Version 1.0.7 (SVN Rev 28014)

Copyright 1998-2009 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.8, with GLib 2.14.6, with WinPcap (version unknown),
with libz 1.2.3, without POSIX capabilities, with libpcre 7.0, with SMI 0.4.8,
with ADNS, with Lua 5.1, with GnuTLS 2.6.3, with Gcrypt 1.4.3, with MIT
Kerberos, with PortAudio V19-devel, with AirPcap.

Running on Windows XP Service Pack 3, 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.
--
Hello,

I've noticed that there is an extra bit in the message considered as fill bit.

Looking at the Wireshark code, we see that when fill_bits = 2, the
fill_bits_mask is at 0xe0, which translates into 3 bits of fill bits displayed
on Wireshark.

The following is the code in question taken from
http://anonsvn.wireshark.org/viewvc/releases/wireshark-1.0.7/epan/dissectors/packet-gsm_sms.c?revision=28024&view=markup

Regards,
Ames

#define NUM_FILL_BITS_MASKS 6
...
    static guint8       fill_bits_mask[NUM_FILL_BITS_MASKS] =
        { 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc };
...
                if (seven_bit)
                        {
                    /* step over fill bits ? */

                    fill_bits = 7 - (((oct + 1) * 8) % 7);
                    if (fill_bits < NUM_FILL_BITS_MASKS)
                            {
                                oct = tvb_get_guint8(tvb, offset);

                                other_decode_bitfield_value(bigbuf, oct,
fill_bits_mask[fill_bits], 8);
                                proto_tree_add_text(udh_subtree,
                                        tvb, offset, 1,
                                        "%s :  Fill bits",
                                        bigbuf);
                        }
                }


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