exthdrs.c (b0e380b1d8a8e0aca215df97702f99815f05c094) | exthdrs.c (27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26) |
---|---|
1/* 2 * Extension Header handling for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * Andi Kleen <ak@muc.de> 8 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> --- 37 unchanged lines hidden (view full) --- 46#include <net/xfrm.h> 47#endif 48 49#include <asm/uaccess.h> 50 51int ipv6_find_tlv(struct sk_buff *skb, int offset, int type) 52{ 53 const unsigned char *nh = skb_network_header(skb); | 1/* 2 * Extension Header handling for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * Andi Kleen <ak@muc.de> 8 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> --- 37 unchanged lines hidden (view full) --- 46#include <net/xfrm.h> 47#endif 48 49#include <asm/uaccess.h> 50 51int ipv6_find_tlv(struct sk_buff *skb, int offset, int type) 52{ 53 const unsigned char *nh = skb_network_header(skb); |
54 int packet_len = skb->tail - nh; | 54 int packet_len = skb->tail - skb->network_header; |
55 struct ipv6_opt_hdr *hdr; 56 int len; 57 58 if (offset + 2 > packet_len) 59 goto bad; 60 hdr = (struct ipv6_opt_hdr *)(nh + offset); 61 len = ((hdr->hdrlen + 1) << 3); 62 --- 908 unchanged lines hidden --- | 55 struct ipv6_opt_hdr *hdr; 56 int len; 57 58 if (offset + 2 > packet_len) 59 goto bad; 60 hdr = (struct ipv6_opt_hdr *)(nh + offset); 61 len = ((hdr->hdrlen + 1) << 3); 62 --- 908 unchanged lines hidden --- |