Re: strlcpy() notes (was Re: [GIT PULL] smb3 client fixes)

From: Linus Torvalds
Date: Tue Aug 23 2022 - 15:12:39 EST


On Tue, Aug 23, 2022 at 1:56 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote:
>
> With load_unaligned_zeropad(), the arm64 implementation disables tag
> checking temporarily. We could do the same with read_word_at_a_time()
> (there is a kasan_check_read() in this function but it wrongly uses a
> size of 1).

The "size of 1" is not wrong, it's intentional, exactly because people
do things like

strscpy(dst, "string", sizeof(dst));

which is a bit unfortunate, but very understandable and intended to
work. So that thing may over-read the string by up to a word. And
KASAN ends up being unhappy.

Linus