lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 04 Mar 2016 23:11:09 -0500 (EST) From: David Miller <davem@...emloft.net> To: eric.dumazet@...il.com Cc: gorcunov@...il.com, netdev@...r.kernel.org, solar@...nwall.com, vvs@...tuozzo.com, avagin@...tuozzo.com, xemul@...tuozzo.com, vdavydov@...tuozzo.com, khorenko@...tuozzo.com Subject: Re: [RFC] net: ipv4 -- Introduce ifa limit per net From: Eric Dumazet <eric.dumazet@...il.com> Date: Fri, 04 Mar 2016 16:08:30 -0800 > __inet_del_ifa() should probably take into account in_dev->dead (no > promotion, no list scan...) Indeed, that is the real problem: diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 8c3df2c..7412feb 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -334,6 +334,12 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, ASSERT_RTNL(); + /* None of these potentially quadratic scans matter if the + * device is being destroyed. + */ + if (in_dev->dead) + goto no_promotions; + /* 1. Deleting primary ifaddr forces deletion all secondaries * unless alias promotion is set **/ @@ -380,6 +386,7 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, fib_del_ifaddr(ifa, ifa1); } +no_promotions: /* 2. Unlink it */ *ifap = ifa1->ifa_next;
Powered by blists - more mailing lists