[linux-yocto] [yocto-4.12][PATCH] ipv4: net namespace does not inherit network configurations
Bruce Ashfield
bruce.ashfield at windriver.com
Tue Dec 5 14:19:16 PST 2017
On 12/04/2017 08:10 PM, Liwei Song wrote:
> Hi Bruce,
>
> Could you help merge this patch to yocto-4.12?
>
Looks like I managed to miss this.
It is now merged.
Bruce
> Thanks,
> Liwei.
>
>
> On 11/28/2017 09:33 AM, Liwei Song wrote:
>> From: yzhu1 <yanjun.zhu at windriver.com>
>>
>> patch from https://lkml.org/lkml/2014/7/29/119
>>
>> Ipv4 net namespace requires a similar logic change as commit a79ca223e029
>> [ipv6: fix bad free of addrconf_init_net] introduces for newer kernels.
>>
>> Since a net namespace is independent to another. That is, there
>> is no any relationship between the net namespaces. So a new net
>> namespace should not inherit network configurations from another
>> net namespace including the host.
>>
>> CC: Hong Zhiguo <honkiko at gmail.com>
>> CC: David S. Miller <davem at davemloft.net>
>> Signed-off-by: Zhu Yanjun <zyjzyj2000 at gmail.com>
>> Signed-off-by: yzhu1 <yanjun.zhu at windriver.com>
>> Signed-off-by: Liwei Song <liwei.song at windriver.com>
>> ---
>> net/ipv4/devinet.c | 29 ++++++++++++-----------------
>> 1 file changed, 12 insertions(+), 17 deletions(-)
>>
>> diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
>> index df14815a3b8c..a558a4c5004d 100644
>> --- a/net/ipv4/devinet.c
>> +++ b/net/ipv4/devinet.c
>> @@ -2349,28 +2349,23 @@ static __net_init int devinet_init_net(struct net *net)
>> #endif
>>
>> err = -ENOMEM;
>> - all = &ipv4_devconf;
>> - dflt = &ipv4_devconf_dflt;
>> + all = kmemdup(&ipv4_devconf, sizeof(ipv4_devconf), GFP_KERNEL);
>> + if (all == NULL)
>> + goto err_alloc_all;
>>
>> - if (!net_eq(net, &init_net)) {
>> - all = kmemdup(all, sizeof(ipv4_devconf), GFP_KERNEL);
>> - if (!all)
>> - goto err_alloc_all;
>> -
>> - dflt = kmemdup(dflt, sizeof(ipv4_devconf_dflt), GFP_KERNEL);
>> - if (!dflt)
>> - goto err_alloc_dflt;
>> + dflt = kmemdup(&ipv4_devconf_dflt, sizeof(ipv4_devconf_dflt), GFP_KERNEL);
>> + if (dflt == NULL)
>> + goto err_alloc_dflt;
>>
>> #ifdef CONFIG_SYSCTL
>> - tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
>> - if (!tbl)
>> - goto err_alloc_ctl;
>> + tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
>> + if (tbl == NULL)
>> + goto err_alloc_ctl;
>>
>> - tbl[0].data = &all->data[IPV4_DEVCONF_FORWARDING - 1];
>> - tbl[0].extra1 = all;
>> - tbl[0].extra2 = net;
>> + tbl[0].data = &all->data[IPV4_DEVCONF_FORWARDING - 1];
>> + tbl[0].extra1 = all;
>> + tbl[0].extra2 = net;
>> #endif
>> - }
>>
>> #ifdef CONFIG_SYSCTL
>> err = __devinet_sysctl_register(net, "all", NETCONFA_IFINDEX_ALL, all);
>>
More information about the linux-yocto
mailing list