Skip to content

Commit 05ab2da

Browse files
committed
Merge branch 'sctp_sysctl'
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2 parents 93dccc5 + f66138c commit 05ab2da

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

net/sctp/sysctl.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -436,20 +436,21 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
436436

437437
int sctp_sysctl_net_register(struct net *net)
438438
{
439-
struct ctl_table *table = sctp_net_table;
440-
441-
if (!net_eq(net, &init_net)) {
442-
int i;
439+
struct ctl_table *table;
440+
int i;
443441

444-
table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
445-
if (!table)
446-
return -ENOMEM;
442+
table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
443+
if (!table)
444+
return -ENOMEM;
447445

448-
for (i = 0; table[i].data; i++)
449-
table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;
450-
}
446+
for (i = 0; table[i].data; i++)
447+
table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;
451448

452449
net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table);
450+
if (net->sctp.sysctl_header == NULL) {
451+
kfree(table);
452+
return -ENOMEM;
453+
}
453454
return 0;
454455
}
455456

0 commit comments

Comments
 (0)