lib: stackinit: Adjust target string to 8 bytes for m68k
authorKees Cook <keescook@chromium.org>
Tue, 27 Feb 2024 22:42:46 +0000 (14:42 -0800)
committerKees Cook <keescook@chromium.org>
Thu, 29 Feb 2024 21:38:03 +0000 (13:38 -0800)
commitc2efa5387c2676815ebbb6a954bf72fef2609709
tree0c9d1a659e078be741923f1afc01b3c81636ac39
parentd4be85d068b4418c341f79b654399f7f0891069a
lib: stackinit: Adjust target string to 8 bytes for m68k

For reasons I cannot understand, m68k moves the start of the stack frame
for consecutive calls to the same function if the function's test
variable is larger than 8 bytes. This was only happening for the char
array test (obviously), so adjust the length of the string for m68k
only. I want the array size to be longer than "unsigned long" for every
given architecture, so the other remain unchanged.

Additionally adjust the error message to be a bit more clear about
what's happened, and move the KUNIT check outside of the consecutive
calls to minimize what happens between them.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Closes: https://lore.kernel.org/lkml/a0d10d50-2720-4ecd-a2c6-c2c5e5aeee65@roeck-us.net/
Tested-by: Guenter Roeck <linux@roeck-us.net>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/r/CAMuHMdX_g1tbiUL9PUQdqaegrEzCNN3GtbSvSBFYAL4TzvstFg@mail.gmail.com
Closes: https://lore.kernel.org/r/CAMuHMdW6N40+0gGQ+LSrN64Mo4A0-ELAm0pR3gWQ0mNanyBuUQ@mail.gmail.com
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/all/a4bf4063-194f-4740-9c1d-88f9ab38b778@roeck-us.net
Signed-off-by: Kees Cook <keescook@chromium.org>
lib/stackinit_kunit.c