Re: [PATCH v2 02/11] mm: Hardened usercopy

From: Rik van Riel
Date: Thu Jul 14 2016 - 21:04:38 EST


On Fri, 2016-07-15 at 09:20 +1000, Balbir Singh wrote:

> > ==
> > + ÂÂÂ((unsigned long)end & (unsigned
> > long)PAGE_MASK)))
> > + return NULL;
> > +
> > + /* Allow if start and end are inside the same compound
> > page. */
> > + endpage = virt_to_head_page(end);
> > + if (likely(endpage == page))
> > + return NULL;
> > +
> > + /* Allow special areas, device memory, and sometimes
> > kernel data. */
> > + if (PageReserved(page) && PageReserved(endpage))
> > + return NULL;
>
> If we came here, it's likely that endpage > page, do we need to check
> that only the first and last pages are reserved? What about the ones
> in
> the middle?

I think this will be so rare, we can get away with just
checking the beginning and the end.

--

All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part