Ethereal-dev: [Ethereal-dev] [marc.poulhies@xxxxxxx: Bug#283534: ethereal: fails to parses Aut

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Frederic Peters <fpeters@xxxxxxxxxx>
Date: Mon, 29 Nov 2004 19:54:29 +0100
Hi,

This just got posted in the Debian bug tracking system.

Regards,

        Frederic

--- Begin Message ---
From: Marc Poulhiès <marc.poulhies@xxxxxxx>
Date: Mon, 29 Nov 2004 19:18:03 +0100
Package: ethereal
Version: 0.10.7-3
Severity: important
Tags: patch

RFC 3315 states that a client must send an Authentication Option with empty
authentication information field and sets the option length to 11 when sending a
solicit (and wanting authentication).
When capturing such packet, I have "AUTH: malformed option.".
Example:

Fields:
 - protocol = 0x02
 - algo = x01
 - rdm = x00
 - replay detection = x00 x00 x00 x00 x00 x00 x00 x00

I made a small patch that seems to fix it:
 - minimal option length is 11, not 15
 - when option length is 11, don't try to display auth info (there is no auth
   info)
 - also a typo 'Reply detection' -> 'Replay detection'

Hope this helps,
Marc

diff -urN ethereal-0.10.7/epan/dissectors/packet-dhcpv6.c ethereal-0.10.7-modif/epan/dissectors/packet-dhcpv6.c
--- ethereal-0.10.7/epan/dissectors/packet-dhcpv6.c	2004-10-21 00:34:59.000000000 +0200
+++ ethereal-0.10.7-modif/epan/dissectors/packet-dhcpv6.c	2004-11-29 19:05:29.000000000 +0100
@@ -423,7 +423,7 @@
           } 
 	  break;
 	case OPTION_AUTH:
-	  if (optlen < 15) {
+	  if (optlen < 11) {
 	    proto_tree_add_text(subtree, tvb, off,
 				optlen, "AUTH: malformed option");
 	    break;
@@ -438,9 +438,10 @@
 			      "RDM: %d",
 			      (guint32)tvb_get_guint8(tvb, off+2));
 	  proto_tree_add_text(subtree, tvb, off+3, 8,
-			      "Reply Detection");
-	  proto_tree_add_text(subtree, tvb, off+11, optlen-11,
-			      "Authentication Information");
+			      "Replay Detection");
+	  if (optlen != 11)
+		proto_tree_add_text(subtree, tvb, off+11, optlen-11,
+							"Authentication Information");
 	  break;
 	case OPTION_UNICAST:
 	  if (optlen != 16) {
-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.9-cko3
Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15)

Versions of packages ethereal depends on:
ii  ethereal-common             0.10.7-3     Network traffic analyser (common f
ii  libadns1                    1.0-8.2      Asynchronous-capable DNS client li
ii  libatk1.0-0                 1.8.0-3      The ATK accessibility toolkit
ii  libc6                       2.3.2.ds1-18 GNU C Library: Shared libraries an
ii  libglib2.0-0                2.4.7-1      The GLib library of C routines
ii  libgtk2.0-0                 2.4.13-1     The GTK+ graphical user interface 
ii  libpango1.0-0               1.6.0-3      Layout and rendering of internatio
ii  libpcap0.7                  0.7.2-7      System interface for user-level pa
ii  zlib1g                      1:1.2.2-3    compression library - runtime

-- no debconf information

--- End Message ---