Messages in this thread | | | Date | Fri, 24 Jun 2022 09:12:52 -0600 | Subject | Re: [PATCH] ipv6/sit: fix ipip6_tunnel_get_prl when memory allocation fails | From | David Ahern <> |
| |
On 6/24/22 2:12 AM, zys.zljxml@gmail.com wrote: > diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c > index c0b138c20992..4fb84c0b30be 100644 > --- a/net/ipv6/sit.c > +++ b/net/ipv6/sit.c > @@ -323,8 +323,6 @@ static int ipip6_tunnel_get_prl(struct net_device *dev, struct ip_tunnel_prl __u > kcalloc(cmax, sizeof(*kp), GFP_KERNEL_ACCOUNT | __GFP_NOWARN) : > NULL; > > - rcu_read_lock(); > - > ca = min(t->prl_count, cmax); > > if (!kp) { > @@ -337,11 +335,12 @@ static int ipip6_tunnel_get_prl(struct net_device *dev, struct ip_tunnel_prl __u > __GFP_NOWARN); > if (!kp) { > ret = -ENOMEM; > - goto out; > + goto err; > } > } > > c = 0; > + rcu_read_lock(); > for_each_prl_rcu(t->prl) { > if (c >= cmax) > break; > @@ -362,7 +361,7 @@ static int ipip6_tunnel_get_prl(struct net_device *dev, struct ip_tunnel_prl __u > ret = -EFAULT; > > kfree(kp); > - > +err: > return ret; > } >
'out' label is no longer used and should be removed.
| |