From 2fc62f2991744dfeec65f8619092c359d8ecbcb0 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Mon, 24 May 2021 14:19:05 -0400 Subject: [PATCH] stackprot: Make our test a bit more complex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Tom Rini --- cmd/stackprot_test.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; }