Re: [PATCH 5.19 089/101] dont use __kernel_write() on kmap_local_page()

From: Geert Uytterhoeven
Date: Mon Oct 03 2022 - 05:11:52 EST


Hi Greg,

On Mon, Oct 3, 2022 at 9:28 AM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
>
> [ Upstream commit 06bbaa6dc53cb72040db952053432541acb9adc7 ]
>
> passing kmap_local_page() result to __kernel_write() is unsafe -
> random ->write_iter() might (and 9p one does) get unhappy when
> passed ITER_KVEC with pointer that came from kmap_local_page().
>
> Fix by providing a variant of __kernel_write() that takes an iov_iter
> from caller (__kernel_write() becomes a trivial wrapper) and adding
> dump_emit_page() that parallels dump_emit(), except that instead of
> __kernel_write() it uses __kernel_write_iter() with ITER_BVEC source.
>
> Fixes: 3159ed57792b "fs/coredump: use kmap_local_page()"
> Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

This will need a follow-up patch, which I have just posted[1], to
not break the build if CONFIG_ELF_CORE is not set.

[1] https://lore.kernel.org/20221003090657.2053236-1-geert@xxxxxxxxxxxxxx

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds