diff options
author | Tom Rini <trini@konsulko.com> | 2021-05-24 14:19:05 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-05-24 14:23:01 -0400 |
commit | 2fc62f2991744dfeec65f8619092c359d8ecbcb0 (patch) | |
tree | 15e7a1deb449053a3ffca9b708813cce2da366ec /cmd | |
parent | 960f110c3781c3d28ca8e75181019a3454ec843a (diff) | |
download | u-boot-2fc62f2991744dfeec65f8619092c359d8ecbcb0.tar.gz |
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')
-rw-r--r-- | cmd/stackprot_test.c | 7 |
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; } |