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: Tue, 04 Feb 2014 10:53:35 -0800 From: ebiederm@...ssion.com (Eric W. Biederman) To: Cong Wang <cwang@...pensource.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, "linux-kernel\@vger.kernel.org" <linux-kernel@...r.kernel.org>, linux-fsdevel@...r.kernel.org, netdev <netdev@...r.kernel.org>, linux-mm@...ck.org Subject: Re: [PATCH] fdtable: Avoid triggering OOMs from alloc_fdmem Cong Wang <cwang@...pensource.com> writes: > On Mon, Feb 3, 2014 at 9:26 PM, Eric W. Biederman <ebiederm@...ssion.com> wrote: >> diff --git a/fs/file.c b/fs/file.c >> index 771578b33fb6..db25c2bdfe46 100644 >> --- a/fs/file.c >> +++ b/fs/file.c >> @@ -34,7 +34,7 @@ static void *alloc_fdmem(size_t size) >> * vmalloc() if the allocation size will be considered "large" by the VM. >> */ >> if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) { >> - void *data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN); >> + void *data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY); >> if (data != NULL) >> return data; >> } > > Or try again without __GFP_NORETRY like we do in nelink mmap? I think I would much rather keep the current semantics of return -ENOMEM and keep the problem localized then trigger a box wide OOM thank you very much. Retrying the kmalloc without __GFP_NORETRY is pointless. If you are in the unlikely 0.01% of the time when the kmalloc fails it is almost certainly going to fail again. Writing out_of_memory() as kmalloc() is pointless and very confusing. The vmalloc won't fail unless you are on a 32bit box. So it isn't a case that anyone has to deal with in practice. Eric -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists