Wireshark-bugs: [Wireshark-bugs] [Bug 10361] UDPlite checksum miscomputed for IP packets with ex
Date: Tue, 12 Aug 2014 01:47:13 +0000

Comment # 4 on bug 10361 from
(In reply to Tom Phinney from comment #0)
> The dissector for UDP has been modified in recent versions to parse UDP PDUs
> (protocol data units) incorrectly, using the computed size of a conveying IP
> payload rather than the EXPLICIT length specified in the UDP header.

It *does* use the length in the UDP header.

> show that the UDP PDU length computation used to be:
> udph->uh_ulen = udph->uh_sum_cov = tvb_get_ntohs(tvb, offset+4);

And it still is.

There *is* no length in the UDPlite header:

    https://tools.ietf.org/html/rfc3828

so it has to depend on the length from the IP header.  If the IP dissector
isn't setting the reported length of the tvbuff it hands to the dissector it
calls by using the IP total length, then

>    udph->uh_ulen = pinfo->iplen - pinfo->iphdrlen;

would work but

>    udph->uh_ulen = tvb_reported_length(tvb);

wouldn't.  (The diff in the bug appears to be backward; the first of those is
the *old* code and the latter is the *new* code.)


You are receiving this mail because:
  • You are watching all bug changes.