[PATCH] stackprot: Make our test a bit more complex
Tom Rini
trini at konsulko.com
Mon May 24 20:59:13 CEST 2021
With better compiler optimizations available, a compiler may see we do
nothing with our buffer after calling memset and omit the call, thus
causing us to not smash the stack. Add a comment to explain why we now
also have a printf call, so that the test will pass as the memset will
not be omitted.
Reported-by: Marek Behún <marek.behun at nic.cz>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
cmd/stackprot_test.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/cmd/stackprot_test.c b/cmd/stackprot_test.c
index 36f5bac8d230..1e26193e88b0 100644
--- a/cmd/stackprot_test.c
+++ b/cmd/stackprot_test.c
@@ -9,9 +9,16 @@
static int do_test_stackprot_fail(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
+ /*
+ * In order to avoid having the compiler optimize away the stack smashing
+ * we need to do a little something here.
+ */
char a[128];
memset(a, 0xa5, 512);
+
+ printf("We have smashed our stack as this should not exceed 128: sizeof(a) = %ld\n", strlen(a));
+
return 0;
}
--
2.17.1
More information about the U-Boot
mailing list