Re: [PATCH] mm: Don't warn if memdup_user fails

David Rientjes
2012-01-12T21:20:00Z

On Thu, 12 Jan 2012, Pekka Enberg wrote:

> I think you missed Andrew's point. We absolutely want to issue a
> kernel warning here because ecryptfs is misusing the memdup_user()
> API. We must not let userspace processes allocate large amounts of
> memory arbitrarily.
>

I think it's good to fix ecryptfs like Tyler is doing and, at the same
time, ensure that the len passed to memdup_user() makes sense prior to
kmallocing memory with GFP_KERNEL. Perhaps something like

if (WARN_ON(len > PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER))
return ERR_PTR(-ENOMEM);

in which case __GFP_NOWARN is irrelevant. I think memdup_user() should
definitely be taking gfp flags, though, so the caller can specify things
like __GFP_NORETRY on its own to avoid infinitely looping in the page
allocator trying reclaim and possibly calling the oom killer.