Stefan Puiu <[EMAIL PROTECTED]> writes:

> 
> Hi all,
> 
> I captured some DHCP traffic using DHCP AUTH (option 90  - see
> RFC3118) using tcpdump on a Linux device and was then trying to view
> it from wireshark (0.99.4) on Windows. The problem is I'm getting some
> warnings on the option length, and I think they are wrong.

OK, I've decided to dive a bit into the code and see what's wrong. I seem to
have found the offending code in epan/dissectors/proto-bootp.c. 

It seems that there's a general check on option 90 so that the length field is
>= 11, which seems right according to RFC3118. Then, wireshark expects the
option length to be >= 31 if HMAC-MD5 is used - trouble is, that is valid for
packets of any other type besides DHCPDISCOVER. Here'an attempt at a patch -
since I'm using cygwin on Windows, I can't verify it: 

--- packet-bootp.c.orig 2007-02-02 00:00:56.000000000 +0200
+++ packet-bootp.c      2007-04-24 00:42:44.267830400 +0300
@@ -1172,11 +1172,20 @@
                        switch (algorithm) {
 
                        case AUTHEN_DELAYED_ALGO_HMAC_MD5:
-                               if (optlen < 31) {
+                               if (!strcmp(*dhcp_type_p, "Discover")) {
+                                       if (optlen < 11) {
+                                               proto_item_append_text(vti,
+                                                                               
           " length isn't >= 11");
+                                               break;
+                                       }
+                               }
+                               else if (optlen < 31) {
                                        proto_item_append_text(vti,
                                                " length isn't >= 31");
                                        break;
                                }
+                               
+                               
                                proto_tree_add_text(v_tree, tvb, optoff, 4,
                                        "Secret ID: 0x%08x",
                                        tvb_get_ntohl(tvb, optoff));

Basically, it uses 11 as the minimum size if the DHCP message type is
DHCPDISCOVER, and 31 otherwise. 

Stefan. 




_______________________________________________
Wireshark-users mailing list
Wireshark-users@wireshark.org
http://www.wireshark.org/mailman/listinfo/wireshark-users

Reply via email to