Skip to content

Commit

Permalink
Merge branch 'sctp_sysctl'
Browse files Browse the repository at this point in the history
Wang Weidong says:

====================
sctp: fix kfree static array pointer in sctp_sysctl_net_unregister

patch #1 revert the efb842c("sctp: optimize the sctp_sysctl_net_register")
patch #2 add a checking for sctp_sysctl_net_register
====================

Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
davem330 committed May 9, 2014
2 parents 93dccc5 + f66138c commit 05ab2da
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions net/sctp/sysctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,20 +436,21 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,

int sctp_sysctl_net_register(struct net *net)
{
struct ctl_table *table = sctp_net_table;

if (!net_eq(net, &init_net)) {
int i;
struct ctl_table *table;
int i;

table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
if (!table)
return -ENOMEM;
table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
if (!table)
return -ENOMEM;

for (i = 0; table[i].data; i++)
table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;
}
for (i = 0; table[i].data; i++)
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;
}

Expand Down

0 comments on commit 05ab2da

Please sign in to comment.