summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwangweidong <wangweidong1@huawei.com>2014-05-08 14:55:02 +0200
committerDavid S. Miller <davem@davemloft.net>2014-05-09 22:41:09 +0200
commitf66138c8471442c24c58cdce6ba5f36c5ce93d7a (patch)
tree53c95dea1f7859caf3a475e0dc04ad33565ca2ce
parentRevert "sctp: optimize the sctp_sysctl_net_register" (diff)
downloadlinux-f66138c8471442c24c58cdce6ba5f36c5ce93d7a.tar.xz
linux-f66138c8471442c24c58cdce6ba5f36c5ce93d7a.zip
sctp: add a checking for sctp_sysctl_net_register
When register_net_sysctl failed, we should free the sysctl_table. Signed-off-by: Wang Weidong <wangweidong1@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sctp/sysctl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
index ee80eb45799d..7e5eb7554990 100644
--- a/net/sctp/sysctl.c
+++ b/net/sctp/sysctl.c
@@ -447,6 +447,10 @@ int sctp_sysctl_net_register(struct net *net)
table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;
net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table);
+ if (net->sctp.sysctl_header == NULL) {
+ kfree(table);
+ return -ENOMEM;
+ }
return 0;
}