Ethereal-dev: [ethereal-dev] patch for bug in packet-ppp.c

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

From: "Donald White" <donald_white@xxxxxxxxx>
Date: Mon, 28 Aug 2006 08:11:11 -0700
-------------------
The Ethereal project is being continued at a new site.  Please go to
http://www.wireshark.org and subscribe to wireshark-dev@xxxxxxxxxxxxx.
Don't forget to unsubscribe from this list at
http://www.ethereal.com/mailman/listinfo/ethereal-dev
-------------------

There is a small bug in the function dissect_ppp() which prevents proper demuxing of packets. Patch is attached.

Don
--- packet-ppp.c.orig	2006-04-17 07:46:42.000000000 -0700
+++ packet-ppp.c	2006-08-27 20:31:09.207622400 -0700
@@ -2994,7 +2994,7 @@
 
       flags = tvb_get_guint8(tvb,offset) & PPPMUX_FLAGS_MASK;
 
-      if (flags && PPPMUX_LXT_BIT_SET ) {
+      if (flags & PPPMUX_LXT_BIT_SET ) {
 	length = tvb_get_ntohs(tvb,offset) & 0x3fff;
 	length_field = 2;
       } else {
@@ -3002,9 +3002,9 @@
 	length_field = 1;
       }
 
-      if (flags && PPPMUX_PFF_BIT_SET) {
+      if (flags & PPPMUX_PFF_BIT_SET) {
 	byte = tvb_get_guint8(tvb,offset + length_field);
-	if (byte && PFC_BIT) {		  /* Compressed PID field*/
+	if (byte & PFC_BIT) {		  /* Compressed PID field*/
 	  pid = byte;
 	  pid_field = 1;
 	} else {		  /*PID field is 2 bytes*/
@@ -3038,7 +3038,7 @@
 
       ti = proto_tree_add_text(hdr_tree,tvb,offset,length_field,"Sub-frame Length = %u",length);
 
-      if (flags && PPPMUX_PFF_BIT_SET)
+      if (flags & PPPMUX_PFF_BIT_SET)
 	proto_tree_add_text(hdr_tree,tvb,offset + length_field,pid_field,"%s: %s(0x%02x)",
 			    "Protocol ID",val_to_str(pid,ppp_vals,"Unknown"), pid);
 
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev