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.