diff mbox series

stackprot: Make our test a bit more complex

Message ID 20210524185913.10422-1-trini@konsulko.com
State Accepted
Commit 2fc62f2991744dfeec65f8619092c359d8ecbcb0
Headers show
Series stackprot: Make our test a bit more complex | expand

Commit Message

Tom Rini May 24, 2021, 6:59 p.m. UTC
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 | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Tom Rini May 25, 2021, 12:58 a.m. UTC | #1
On Mon, May 24, 2021 at 02:59:13PM -0400, Tom Rini wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/cmd/stackprot_test.c b/cmd/stackprot_test.c
index 36f5bac8d230..1e26193e88b0 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;
 }