The patch is against ethereal 0.10.6 pre-release and contains the following:
* In OPTION_DOMAIN_LIST (24), DNS domains will be shown as decoded domains
instead of showing them as encoded bytes.
* Code is added to support a new option OPTION_CLIENT_FQDN as defined
in the IETF draft "draft-volz-dhc-dhcpv6-fqdn-00.txt". As the option code
is not assigned yet, I used the next number 42 for unassinged codes.
* There were two checks at the beginning of dhcpv6_option(), which cause
infinite loop if a packet is little bit out of ordinary. I commented
them out for the time being. They are inside #if 0 right now. Please fix
them who understands the code well. I don't have time to figure out the
code right now, sorry.
I'm attaching a capture "soli-adv-bad.cap" to test this. If you load this
packet in any unpatched ethereal, the advertise packet will cause
infinite loop. If you load the bad packet with patched ethereal (or any
ethereal compiled without the 2 checks I told above), you'll see "IA
Address" is 2 bytes short.
I'm also attaching a good "soli-ad-req-rep.cap", load it in old and
patched ethereal to see the difference.
TODO:
- error messages are written to stderr. change them for GUI.
- compile and test on win32.
- check if there's any buffer overflow or infinite loop in the code.
$ gunzip packet-dhcpv6.c.gz
save the original copy
$ cp packet-dhcpv6.c ethereal-0.10.6/epan/dissectors/packet-dhcpv6.c
Thanks.
--
Muhammad A Muquit . http://www.muquit.com/
Attachment:
packet-dhcpv6.c.gz
Description: GNU Zip compressed data
Attachment:
soli-adv-bad.cap
Description: Binary data
Attachment:
soli-adv-req-rep-good.cap
Description: Binary data