forked from osmocom/wireshark
DHCPv6: fix for bogus errors. Detailed error msgs
Routine "dhcpv6_domain()" of packet-dhcpv6.c has the following issues: a. It is unaware of partial (relative) domain names which unlike FQDNs must *not* be root terminated(0); otherwise, the resolver interprets them as top-level domains (TLDs) such as "com." and "org.". b. Malformed errors are not thrown when they should be and when thrown, it does so for the wrong reason. c. No detail is provided as to the nature of a malformation. d. The routine does not know the difference between an "empty" and "root-only" domain name. Routine "dhcpv6_option(): The meanings of flags octet of the in the OPTION_CLIENT_FQDN option sent by the client are different that those of the server. These differences are not reflected in the display. In addition, the description of the 'N' bit is incorrect in either case. The sender type must be determined in order to label them correctly and to detect conflicts among them. These changes fully address the above issues. Six types of domain name errors are now detected. I believe the unusually large amount of detailed comments with RFC references and explanations were needed in this case due to the introduction of concepts such as partial domain names that were not recognized as such and thus improperly handled and labelled. The subtree option headers have been converted from "Text only" to named fields (dhcpv6.option.type_str). Example captures are attached to the bug report. The msgtype global variable has been eliminatd. Bug: 16627 Change-Id: I8d9bf1164835ece2272cc92dd0917322024422d2 Reviewed-on: https://code.wireshark.org/review/37661 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Cal Turney <cturney111@gmail.com>
This commit is contained in:
parent
b46a554ae7
commit
faeefc9d59