On 02/21/2019 05:57 PM, Kefeng Wang wrote:
> Simply use icmp_sk_exit() when inet_ctl_sock_create() fail in icmp_sk_init().
> 
> Signed-off-by: Kefeng Wang <wangkefeng.w...@huawei.com>
> ---
>  net/ipv4/icmp.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
> index 065997f414e6..364cfe5e414b 100644
> --- a/net/ipv4/icmp.c
> +++ b/net/ipv4/icmp.c
> @@ -1245,9 +1245,7 @@ static int __net_init icmp_sk_init(struct net *net)
>       return 0;
>  
>  fail:
> -     for_each_possible_cpu(i)
> -             inet_ctl_sock_destroy(*per_cpu_ptr(net->ipv4.icmp_sk, i));
> -     free_percpu(net->ipv4.icmp_sk);
> +     icmp_sk_exit(net);
>       return err;
>  }
>  
> 


I do not like this. Future changes in icmp_sk_exit() might trigger a bug in 
this seldom tested path.

Reply via email to