diff options
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/cipso_ipv4.h | 6 | ||||
| -rw-r--r-- | include/net/dst.h | 12 | ||||
| -rw-r--r-- | include/net/ip6_route.h | 6 | ||||
| -rw-r--r-- | include/net/mac802154.h | 2 | ||||
| -rw-r--r-- | include/net/sock.h | 6 |
5 files changed, 21 insertions, 11 deletions
diff --git a/include/net/cipso_ipv4.h b/include/net/cipso_ipv4.h index a7a683e30b64..a8c2ef6d3b93 100644 --- a/include/net/cipso_ipv4.h +++ b/include/net/cipso_ipv4.h | |||
| @@ -290,6 +290,7 @@ static inline int cipso_v4_validate(const struct sk_buff *skb, | |||
| 290 | unsigned char err_offset = 0; | 290 | unsigned char err_offset = 0; |
| 291 | u8 opt_len = opt[1]; | 291 | u8 opt_len = opt[1]; |
| 292 | u8 opt_iter; | 292 | u8 opt_iter; |
| 293 | u8 tag_len; | ||
| 293 | 294 | ||
| 294 | if (opt_len < 8) { | 295 | if (opt_len < 8) { |
| 295 | err_offset = 1; | 296 | err_offset = 1; |
| @@ -302,11 +303,12 @@ static inline int cipso_v4_validate(const struct sk_buff *skb, | |||
| 302 | } | 303 | } |
| 303 | 304 | ||
| 304 | for (opt_iter = 6; opt_iter < opt_len;) { | 305 | for (opt_iter = 6; opt_iter < opt_len;) { |
| 305 | if (opt[opt_iter + 1] > (opt_len - opt_iter)) { | 306 | tag_len = opt[opt_iter + 1]; |
| 307 | if ((tag_len == 0) || (opt[opt_iter + 1] > (opt_len - opt_iter))) { | ||
| 306 | err_offset = opt_iter + 1; | 308 | err_offset = opt_iter + 1; |
| 307 | goto out; | 309 | goto out; |
| 308 | } | 310 | } |
| 309 | opt_iter += opt[opt_iter + 1]; | 311 | opt_iter += tag_len; |
| 310 | } | 312 | } |
| 311 | 313 | ||
| 312 | out: | 314 | out: |
diff --git a/include/net/dst.h b/include/net/dst.h index 3bc4865f8267..3c4c944096c9 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
| @@ -479,10 +479,22 @@ static inline struct dst_entry *xfrm_lookup(struct net *net, | |||
| 479 | { | 479 | { |
| 480 | return dst_orig; | 480 | return dst_orig; |
| 481 | } | 481 | } |
| 482 | |||
| 483 | static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst) | ||
| 484 | { | ||
| 485 | return NULL; | ||
| 486 | } | ||
| 487 | |||
| 482 | #else | 488 | #else |
| 483 | extern struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig, | 489 | extern struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig, |
| 484 | const struct flowi *fl, struct sock *sk, | 490 | const struct flowi *fl, struct sock *sk, |
| 485 | int flags); | 491 | int flags); |
| 492 | |||
| 493 | /* skb attached with this dst needs transformation if dst->xfrm is valid */ | ||
| 494 | static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst) | ||
| 495 | { | ||
| 496 | return dst->xfrm; | ||
| 497 | } | ||
| 486 | #endif | 498 | #endif |
| 487 | 499 | ||
| 488 | #endif /* _NET_DST_H */ | 500 | #endif /* _NET_DST_H */ |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index f525e7038cca..2b786b7e3585 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
| @@ -194,11 +194,9 @@ static inline int ip6_skb_dst_mtu(struct sk_buff *skb) | |||
| 194 | skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb)); | 194 | skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb)); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt, struct in6_addr *dest) | 197 | static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt) |
| 198 | { | 198 | { |
| 199 | if (rt->rt6i_flags & RTF_GATEWAY) | 199 | return &rt->rt6i_gateway; |
| 200 | return &rt->rt6i_gateway; | ||
| 201 | return dest; | ||
| 202 | } | 200 | } |
| 203 | 201 | ||
| 204 | #endif | 202 | #endif |
diff --git a/include/net/mac802154.h b/include/net/mac802154.h index d0d11df9cba1..807d6b7a943f 100644 --- a/include/net/mac802154.h +++ b/include/net/mac802154.h | |||
| @@ -133,7 +133,7 @@ struct ieee802154_ops { | |||
| 133 | 133 | ||
| 134 | /* Basic interface to register ieee802154 device */ | 134 | /* Basic interface to register ieee802154 device */ |
| 135 | struct ieee802154_dev * | 135 | struct ieee802154_dev * |
| 136 | ieee802154_alloc_device(size_t priv_data_lex, struct ieee802154_ops *ops); | 136 | ieee802154_alloc_device(size_t priv_data_len, struct ieee802154_ops *ops); |
| 137 | void ieee802154_free_device(struct ieee802154_dev *dev); | 137 | void ieee802154_free_device(struct ieee802154_dev *dev); |
| 138 | int ieee802154_register_device(struct ieee802154_dev *dev); | 138 | int ieee802154_register_device(struct ieee802154_dev *dev); |
| 139 | void ieee802154_unregister_device(struct ieee802154_dev *dev); | 139 | void ieee802154_unregister_device(struct ieee802154_dev *dev); |
diff --git a/include/net/sock.h b/include/net/sock.h index 1d37a8086bed..808cbc2ec6c1 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
| @@ -1630,16 +1630,14 @@ static inline void sk_filter_release(struct sk_filter *fp) | |||
| 1630 | 1630 | ||
| 1631 | static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) | 1631 | static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) |
| 1632 | { | 1632 | { |
| 1633 | unsigned int size = sk_filter_len(fp); | 1633 | atomic_sub(sk_filter_size(fp->len), &sk->sk_omem_alloc); |
| 1634 | |||
| 1635 | atomic_sub(size, &sk->sk_omem_alloc); | ||
| 1636 | sk_filter_release(fp); | 1634 | sk_filter_release(fp); |
| 1637 | } | 1635 | } |
| 1638 | 1636 | ||
| 1639 | static inline void sk_filter_charge(struct sock *sk, struct sk_filter *fp) | 1637 | static inline void sk_filter_charge(struct sock *sk, struct sk_filter *fp) |
| 1640 | { | 1638 | { |
| 1641 | atomic_inc(&fp->refcnt); | 1639 | atomic_inc(&fp->refcnt); |
| 1642 | atomic_add(sk_filter_len(fp), &sk->sk_omem_alloc); | 1640 | atomic_add(sk_filter_size(fp->len), &sk->sk_omem_alloc); |
| 1643 | } | 1641 | } |
| 1644 | 1642 | ||
| 1645 | /* | 1643 | /* |
