[PATCH 2.6] ip6t_LOG and packets with hop-by-hop options

STALE8105d

3 messages, 3 authors, 2004-07-06 · open the first message on its own page

[PATCH 2.6] ip6t_LOG and packets with hop-by-hop options

From: Marcel Sebek <hidden>
Date: 2004-07-06 15:09:51

Packet with IPPROTO_HOPOPTS extended header isn't logged properly by
ip6t_LOG.c. It only prints PROTO=0 and nothing more, because
IPPROTO_HOPOPTS=0 and in this file 0 is used to indicate last header.
This patch fix it by using IPPROTO_NONE to indicate last header.

Signed-off-by: Marcel Sebek <redacted>


diff -urpN linux-2.6/net/ipv6/netfilter/ip6t_LOG.c linux-2.6-new/net/ipv6/netfilter/ip6t_LOG.c
--- linux-2.6/net/ipv6/netfilter/ip6t_LOG.c	2004-04-21 20:01:54.000000000 +0200
+++ linux-2.6-new/net/ipv6/netfilter/ip6t_LOG.c	2004-07-06 16:48:20.000000000 +0200
@@ -48,10 +48,10 @@ static spinlock_t log_lock = SPIN_LOCK_U
 
 /* takes in current header and pointer to the header */
 /* if another header exists, sets hdrptr to the next header
-   and returns the new header value, else returns 0 */
+   and returns the new header value, else returns IPPROTO_NONE */
 static u_int8_t ip6_nexthdr(u_int8_t currenthdr, u_int8_t **hdrptr)
 {
-	u_int8_t hdrlen, nexthdr = 0;
+	u_int8_t hdrlen, nexthdr = IPPROTO_NONE;
 
 	switch(currenthdr){
 		case IPPROTO_AH:
@@ -77,7 +77,6 @@ static u_int8_t ip6_nexthdr(u_int8_t cur
 			break;
 	}	
 	return nexthdr;
-
 }
 
 /* One level of recursion won't kill us */
@@ -101,7 +100,7 @@ static void dump_packet(const struct ip6
 
 	fragment = 0;
 	hdrptr = (u_int8_t *)(ipv6h + 1);
-	while (currenthdr) {
+	while (currenthdr != IPPROTO_NONE) {
 		if ((currenthdr == IPPROTO_TCP) ||
 		    (currenthdr == IPPROTO_UDP) ||
 		    (currenthdr == IPPROTO_ICMPV6))
@@ -264,7 +263,7 @@ static void dump_packet(const struct ip6
 		}
 		break;
 	}
-	/* Max length: 10 "PROTO 255 " */
+	/* Max length: 10 "PROTO=255 " */
 	default:
 		printk("PROTO=%u ", currenthdr);
 	}
-- 
Marcel Sebek
jabber: sebek@jabber.cz                     ICQ: 279852819
linux user number: 307850                 GPG ID: 5F88735E
GPG FP: 0F01 BAB8 3148 94DB B95D  1FCA 8B63 CA06 5F88 735E

Re: [PATCH 2.6] ip6t_LOG and packets with hop-by-hop options

From: Harald Welte <hidden>
Date: 2004-07-06 16:01:23

On Tue, Jul 06, 2004 at 05:09:18PM +0200, Marcel Sebek wrote:
Packet with IPPROTO_HOPOPTS extended header isn't logged properly by
ip6t_LOG.c. It only prints PROTO=0 and nothing more, because
IPPROTO_HOPOPTS=0 and in this file 0 is used to indicate last header.
This patch fix it by using IPPROTO_NONE to indicate last header.
looks fine to me.  Dave, can you please include this to your tree?
Thanks.
-- 
- Harald Welte [off-list ref]             http://www.netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie

Re: [PATCH 2.6] ip6t_LOG and packets with hop-by-hop options

From: David S. Miller <hidden>
Date: 2004-07-06 20:59:18

On Tue, 6 Jul 2004 18:01:09 +0200
Harald Welte [off-list ref] wrote:
On Tue, Jul 06, 2004 at 05:09:18PM +0200, Marcel Sebek wrote:
quoted
Packet with IPPROTO_HOPOPTS extended header isn't logged properly by
ip6t_LOG.c. It only prints PROTO=0 and nothing more, because
IPPROTO_HOPOPTS=0 and in this file 0 is used to indicate last header.
This patch fix it by using IPPROTO_NONE to indicate last header.
looks fine to me.  Dave, can you please include this to your tree?
Thanks.
Applied, thanks everyone.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help