Re: [PATCH] mm: prevent page_frag_alloc() from corrupting the memory

From: Maurizio Lombardi
Date: Mon Jul 11 2022 - 12:17:57 EST


po 11. 7. 2022 v 17:34 odesílatel Alexander Duyck
<alexander.duyck@xxxxxxxxx> napsal:
>
> Rather than forcing us to free the page it might be better to move the
> lines getting the size and computing the offset to the top of the "if
> (unlikely(offset < 0)) {" block. Then instead of freeing the page we
> could just return NULL and don't have to change the value of any
> fields in the page_frag_cache.
>
> That way a driver performing bad requests can't force us to start
> allocating and freeing pages like mad by repeatedly flushing the
> cache.
>

I understand. On the other hand, if we free the cache page then the
next time __page_frag_cache_refill() runs it may be successful
at allocating the order=3 cache, the normal page_frag_alloc() behaviour will
therefore be restored.

Maurizio