Wireshark-bugs: [Wireshark-bugs] [Bug 2202] Wrong warning message of Wireshark: " PPPoE Payload
Date: Sat, 2 Feb 2008 09:28:25 +0000 (GMT)
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2202


Sake <sake@xxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sake@xxxxxxxxxx
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #3 from Sake <sake@xxxxxxxxxx>  2008-02-02 09:28:22 GMT ---
I wanted to suggest to treat the case where the ethernet frame was
padded (to make it 64 bytes) differently, but then I saw that it
should already do that:

/*
 * The only reason why the payload length from the header
 * should differ from the remaining data in the packet
 * would be if the total packet length, including Ethernet
 * CRC, were < 64 bytes, so that padding was required.
 *
 * That means that you have 14 bytes of Ethernet header,
 * 4 bytes of FCS, and fewer than 46 bytes of PPPoE packet.
 *
 * If that's not the case, we report a difference between
 * the payload length in the packet, and the amount of
 * data following the PPPoE header, as an error.
 */


However, the code has a one-off error in it:

if (tvb_reported_length(tvb) >= 46 &&
   reported_payload_length != actual_payload_length) {
       proto_item_append_text(ti, " [incorrect, should be %u]",
      actual_payload_length);
       expert_add_info_format(pinfo, ti, PI_MALFORMED,
   PI_WARN, "Possible bad payload length %u != %u",
   reported_payload_length, actual_payload_length);
}

In case of a minimal length ethernet frame, the reported_length 
is actually 46, so the ">=" should have been a ">".

I'll check in a fix as I have it ready anyways... Sorry to steal
your project for today ;-)


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