diff options
| author | Pan Bian <bianpan2016@163.com> | 2017-04-23 02:28:37 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2017-04-24 15:51:30 -0400 |
| commit | a50fe0ffd76fbd17af36209a16caf0b8ad901fef (patch) | |
| tree | a948f0c673aedde2585c8f243a88e0c0bbbeae9f /net/core | |
| parent | 09d36071cfbc1fec9c93a30704b687829ee5efef (diff) | |
lwtunnel: check return value of nla_nest_start
Function nla_nest_start() may return a NULL pointer on error. However,
in function lwtunnel_fill_encap(), the return value of nla_nest_start()
is not validated before it is used. This patch checks the return value
of nla_nest_start() against NULL.
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
| -rw-r--r-- | net/core/lwtunnel.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/core/lwtunnel.c b/net/core/lwtunnel.c index b5888190223c..5cbed3816229 100644 --- a/net/core/lwtunnel.c +++ b/net/core/lwtunnel.c | |||
| @@ -214,6 +214,8 @@ int lwtunnel_fill_encap(struct sk_buff *skb, struct lwtunnel_state *lwtstate) | |||
| 214 | 214 | ||
| 215 | ret = -EOPNOTSUPP; | 215 | ret = -EOPNOTSUPP; |
| 216 | nest = nla_nest_start(skb, RTA_ENCAP); | 216 | nest = nla_nest_start(skb, RTA_ENCAP); |
| 217 | if (!nest) | ||
| 218 | goto nla_put_failure; | ||
| 217 | rcu_read_lock(); | 219 | rcu_read_lock(); |
| 218 | ops = rcu_dereference(lwtun_encaps[lwtstate->type]); | 220 | ops = rcu_dereference(lwtun_encaps[lwtstate->type]); |
| 219 | if (likely(ops && ops->fill_encap)) | 221 | if (likely(ops && ops->fill_encap)) |
