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>
This commit is contained in:
Tom Rini 2021-05-24 14:19:05 -04:00
parent 960f110c37
commit 2fc62f2991
1 changed files with 7 additions and 0 deletions

View 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;
}