af_unix: fix unix_sysctl_register() error path
authorEric Dumazet <edumazet@google.com>
Fri, 8 Jul 2022 16:28:58 +0000 (16:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 9 Jul 2022 11:27:33 +0000 (12:27 +0100)
We want to kfree(table) if @table has been kmalloced,
ie for non initial network namespace.

Fixes: 849d5aa3a1d8 ("af_unix: Do not call kmemdup() for init_net's sysctl table.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Kuniyuki Iwashima <kuniyu@amazon.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/unix/sysctl_net_unix.c

index 3f1fdff..500129a 100644 (file)
@@ -43,7 +43,7 @@ int __net_init unix_sysctl_register(struct net *net)
        return 0;
 
 err_reg:
-       if (net_eq(net, &init_net))
+       if (!net_eq(net, &init_net))
                kfree(table);
 err_alloc:
        return -ENOMEM;