summaryrefslogtreecommitdiff
path: root/cmd/stackprot_test.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-05-24 14:19:05 -0400
committerTom Rini <trini@konsulko.com>2021-05-24 14:23:01 -0400
commit2fc62f2991744dfeec65f8619092c359d8ecbcb0 (patch)
tree15e7a1deb449053a3ffca9b708813cce2da366ec /cmd/stackprot_test.c
parent960f110c3781c3d28ca8e75181019a3454ec843a (diff)
stackprot: Make our test a bit more complex
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@nic.cz> Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'cmd/stackprot_test.c')
-rw-r--r--cmd/stackprot_test.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cmd/stackprot_test.c b/cmd/stackprot_test.c
index 36f5bac8d2..1e26193e88 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;
}