On 2014/5/8 19:41, Neil Horman wrote: > On Thu, May 08, 2014 at 07:31:09PM +0800, Wang Weidong wrote: >> On 2014/5/8 19:26, Wang Weidong wrote: >>> On 2014/5/8 19:11, Neil Horman wrote: >>>> On Thu, May 08, 2014 at 03:55:05PM +0800, Wang Weidong wrote: >>>>> When register_net_sysctl failed, we should free the >>>>> sysctl_table while the net_namespace is not init_net. >>>>> >>>>> Signed-off-by: Wang Weidong <wangweidong1@xxxxxxxxxx> >>>>> --- >>>>> net/sctp/sysctl.c | 5 +++++ >>>>> 1 file changed, 5 insertions(+) >>>>> >>>>> diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c >>>>> index 844d2b0..4c17694 100644 >>>>> --- a/net/sctp/sysctl.c >>>>> +++ b/net/sctp/sysctl.c >>>>> @@ -450,6 +450,11 @@ int sctp_sysctl_net_register(struct net *net) >>>>> } >>>>> >>>>> net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); >>>>> + if (net->sctp.sysctl_header == NULL) { >>>>> + if (!net_eq(net, &init_net)) >>>>> + kfree(table); >>>>> + return -ENOMEM; >>>>> + } >>>> Sorry, we're not special casing this in 3 places. Why not just revert the >>>> origonal commit so that all the sysctl tables can be handled the same way >>>> Neil >>>> >>> Hi Neil, >>> >>> The original commit avoids to kmemdup >>> >> Hi Neil, >> >> Sorry for the accomplished mail. >> Although, revert the original commit, the checking for net->sctp.sysctl_header >> is need from coding view. >> >> What do you think? >> > That was my review. I get that the origional commit avoids kmemdup for the > init_net case. My point was that, in so doing you created the need to special > case the handling of the sysctl table for init_net in 3 places now. It seems to > me that, while its always nice to save space, it would be cleaner programming to > just accept the need for the extra 1.6Kb of space and not have to worry about > the special casing. > > Neil > Hm, Should I add this: + if (net->sctp.sysctl_header == NULL); + kfree(table); to the revert patch or do a new patch? Regards Wang >> Regards >> Wang >> >>>>> return 0; >>>>> } >>>>> >>>>> -- >>>>> 1.7.12 >>>>> >>>>> >>>>> >>>> -- >>>> To unsubscribe from this list: send the line "unsubscribe netdev" in >>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> >>>> >>> >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > . > -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html