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 ---