Commit 4a009cb0 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

net: add __must_check to skb_put_padto()

skb_put_padto() and __skb_put_padto() callers
must check return values or risk use-after-free.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3ca1a42a
...@@ -3223,7 +3223,8 @@ static inline int skb_padto(struct sk_buff *skb, unsigned int len) ...@@ -3223,7 +3223,8 @@ static inline int skb_padto(struct sk_buff *skb, unsigned int len)
* is untouched. Otherwise it is extended. Returns zero on * is untouched. Otherwise it is extended. Returns zero on
* success. The skb is freed on error if @free_on_error is true. * success. The skb is freed on error if @free_on_error is true.
*/ */
static inline int __skb_put_padto(struct sk_buff *skb, unsigned int len, static inline int __must_check __skb_put_padto(struct sk_buff *skb,
unsigned int len,
bool free_on_error) bool free_on_error)
{ {
unsigned int size = skb->len; unsigned int size = skb->len;
...@@ -3247,7 +3248,7 @@ static inline int __skb_put_padto(struct sk_buff *skb, unsigned int len, ...@@ -3247,7 +3248,7 @@ static inline int __skb_put_padto(struct sk_buff *skb, unsigned int len,
* is untouched. Otherwise it is extended. Returns zero on * is untouched. Otherwise it is extended. Returns zero on
* success. The skb is freed on error. * success. The skb is freed on error.
*/ */
static inline int skb_put_padto(struct sk_buff *skb, unsigned int len) static inline int __must_check skb_put_padto(struct sk_buff *skb, unsigned int len)
{ {
return __skb_put_padto(skb, len, true); return __skb_put_padto(skb, len, true);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment