https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5393
Summary: Wrong length calculation in
new_octet_aligned_subset_bits() (PER dissector)
Product: Wireshark
Version: 1.5.x (Experimental)
Platform: x86
OS/Version: Windows XP
Status: NEW
Severity: Major
Priority: Low
Component: Wireshark
AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
ReportedBy: jodd@xxxxxx
Created an attachment (id=5459)
--> (https://bugs.wireshark.org/bugzilla/attachment.cgi?id=5459)
Corrected check_length calculation
Build Information:
Version 1.5.0 (SVN Rev 34855 from /trunk)
Copyright 1998-2010 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 (32-bit) with GTK+ 2.16.6, with GLib 2.24.2, with WinPcap (version
unknown), with libz 1.2.3, without POSIX capabilities, without libpcre, with
SMI
0.4.8, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS 2.8.5, with
Gcrypt 1.4.5, with MIT Kerberos, with GeoIP, with PortAudio V19-devel (built
Nov
13 2010), with AirPcap.
Running on Windows XP Service Pack 3, build 2600, with WinPcap version 4.1.2
(packet.dll version 4.1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b
(20091008), GnuTLS 2.8.5, Gcrypt 1.4.5, without AirPcap.
Built using Microsoft Visual C++ 9.0 build 21022
Wireshark is Open Source Software released under the GNU General Public
License.
Check the man page and http://www.wireshark.org for more information.
--
For checking the calculated length of the new sub_tvb the variable check_length
is derived by:
tvb_bits = (boffset & 7)+ no_of_bits;
check_length = tvb_bits/8;
remainderval = no_of_bits % 8;
if(remainderval){
check_length++;
}
I think remainderval should be calculated with:
remainderval = tvb_bits % 8;
See the attached patch for a possible fix.
--
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.