diff options
| author | Michael Ellerman <[email protected]> | 2016-11-15 07:02:32 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2016-11-15 18:26:06 +0000 |
| commit | c55d240003ae253d3057dcf93510c9bd64bb7a09 (patch) | |
| tree | c80233dfdea2ba01b6a627fbe9cbc52a45df203c | |
| parent | mei: fix parameter rename KDoc (diff) | |
| download | kernel-c55d240003ae253d3057dcf93510c9bd64bb7a09.tar.gz kernel-c55d240003ae253d3057dcf93510c9bd64bb7a09.zip | |
lkdtm: Prevent the compiler from optimising lkdtm_CORRUPT_STACK()
At least on powerpc with GCC 6, the compiler is smart enough to optimise
lkdtm_CORRUPT_STACK() into an empty function that just returns.
If we print the buffer after we've written to it that prevents the
compiler from optimising away data and the memset().
Signed-off-by: Michael Ellerman <[email protected]>
Acked-by: Kees Cook <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
| -rw-r--r-- | drivers/misc/lkdtm_bugs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/misc/lkdtm_bugs.c b/drivers/misc/lkdtm_bugs.c index 182ae1894b32..30e62dd7e7ca 100644 --- a/drivers/misc/lkdtm_bugs.c +++ b/drivers/misc/lkdtm_bugs.c @@ -80,7 +80,8 @@ noinline void lkdtm_CORRUPT_STACK(void) /* Use default char array length that triggers stack protection. */ char data[8]; - memset((void *)data, 0, 64); + memset((void *)data, 'a', 64); + pr_info("Corrupted stack with '%16s'...\n", data); } void lkdtm_UNALIGNED_LOAD_STORE_WRITE(void) |
