Re: [PATCH] bcache: Silence memcpy() run-time false positive warnings

From: Thorsten Leemhuis
Date: Fri Jan 06 2023 - 05:01:14 EST


On 06.01.23 07:02, Kees Cook wrote:
> struct bkey has internal padding in a union, but it isn't always named
> the same (e.g. key ## _pad, key_p, etc). This makes it extremely hard
> for the compiler to reason about the available size of copies done
> against such keys. Use unsafe_memcpy() for now, to silence the many
> run-time false positive warnings:
>
> memcpy: detected field-spanning write (size 264) of single field "&i->j" at drivers/md/bcache/journal.c:152 (size 240)
> memcpy: detected field-spanning write (size 24) of single field "&b->key" at drivers/md/bcache/btree.c:939 (size 16)
> emcpy: detected field-spanning write (size 24) of single field "&temp.key" at drivers/md/bcache/extents.c:428 (size 16)

Thx for looking into this.

> Reported-by: Thorsten Leemhuis <linux@xxxxxxxxxxxxx>
> Link: https://lore.kernel.org/all/19200730-a3ba-6f4f-bb81-71339bdbbf73@xxxxxxxxxxxxx/

Credit where credit is due, this should be:

Reported-by: Alexandre Pereira <alexpereira@xxxxxxxxxxx>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216785

> Cc: Coly Li <colyli@xxxxxxx>
> […]

Ciao, Thorsten