[PATCH v1 1/6] fs/readdir: Fix filldir() and filldir64() use of user_access_begin()

Linus Torvalds torvalds at linux-foundation.org
Thu Jan 23 03:13:12 AEDT 2020


On Wed, Jan 22, 2020 at 5:00 AM Christophe Leroy
<christophe.leroy at c-s.fr> wrote:
>
> Modify filldir() and filldir64() to request the real area they need
> to get access to.

Not like this.

This makes the situation for architectures like x86 much worse, since
you now use "put_user()" for the previous dirent filling. Which does
that expensive user access setup/teardown twice again.

So either you need to cover both the dirent's with one call, or you
just need to cover the whole (original) user buffer passed in. But not
this unholy mixing of both unsafe_put_user() and regular put_user().

              Linus


More information about the Linuxppc-dev mailing list