[NETFILTER]: Backport fixes for ip6t_rt
Linux Kernel Mailing List <[email protected]>
| Newsgroups | gmane.linux.kernel.commits.2-4 |
|---|---|
| Message-ID | <[email protected]> |
ChangeSet 1.1546, 2004/12/21 17:46:30+01:00, [email protected] [NETFILTER]: Backport fixes for ip6t_rt This patch fixes the following bugs - Wrong cast the pointer to extension header. - "Segments Left" field in Routing Header isn't treated as 1 octet. Signed-off-by: Yasuyuki KOZAKAI <[email protected]> Signed-off-by: Patrick McHardy <[email protected]> ip6t_rt.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -Nru a/net/ipv6/netfilter/ip6t_rt.c b/net/ipv6/netfilter/ip6t_rt.c --- a/net/ipv6/netfilter/ip6t_rt.c 2005-01-15 07:04:50 -08:00 +++ b/net/ipv6/netfilter/ip6t_rt.c 2005-01-15 07:04:50 -08:00 @@ -78,7 +78,7 @@ break; } - hdr=(struct ipv6_opt_hdr *)skb->data+ptr; + hdr=(struct ipv6_opt_hdr *)(skb->data+ptr); /* Calculate the header length */ if (nexthdr == NEXTHDR_FRAGMENT) { @@ -135,11 +135,11 @@ DEBUGP("IPv6 RT LEN %u %u ", hdrlen, route->hdrlen); DEBUGP("TYPE %04X ", route->type); - DEBUGP("SGS_LEFT %u %08X\n", ntohl(route->segments_left), ntohl(route->segments_left)); + DEBUGP("SGS_LEFT %u %02X\n", route->segments_left, route->segments_left); DEBUGP("IPv6 RT segsleft %02X ", (segsleft_match(rtinfo->segsleft[0], rtinfo->segsleft[1], - ntohl(route->segments_left), + route->segments_left, !!(rtinfo->invflags & IP6T_RT_INV_SGS)))); DEBUGP("type %02X %02X %02X ", rtinfo->rt_type, route->type, @@ -158,7 +158,7 @@ ret = (route != NULL) && (segsleft_match(rtinfo->segsleft[0], rtinfo->segsleft[1], - ntohl(route->segments_left), + route->segments_left, !!(rtinfo->invflags & IP6T_RT_INV_SGS))) && (!(rtinfo->flags & IP6T_RT_LEN) ||