stackprot: Make our test a bit more complex
authorTom Rini <trini@konsulko.com>
Mon, 24 May 2021 18:19:05 +0000 (14:19 -0400)
committerTom Rini <trini@konsulko.com>
Mon, 24 May 2021 18:23:01 +0000 (14:23 -0400)
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>
cmd/stackprot_test.c

index 36f5bac..1e26193 100644 (file)
@@ -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;
 }