Browse Source
Allow qemu users to enable stack protection. Since the virt platform does not provide an RNG, use a basic, timer-based, canary generation, similarly to FVP. Increase SRAM size and BL2 size to fit images when stack protection is enabled. Notice that stack protection is not enabled by default in qemu. Fixes ARM-software/tf-issues#568 Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>pull/1325/head
Michalis Pappas
7 years ago
3 changed files with 29 additions and 2 deletions
@ -0,0 +1,23 @@ |
|||
/*
|
|||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. |
|||
* |
|||
* SPDX-License-Identifier: BSD-3-Clause |
|||
*/ |
|||
|
|||
#include <arch_helpers.h> |
|||
#include <platform.h> |
|||
#include <stdint.h> |
|||
|
|||
#define RANDOM_CANARY_VALUE ((u_register_t) 3288484550995823360ULL) |
|||
|
|||
u_register_t plat_get_stack_protector_canary(void) |
|||
{ |
|||
/*
|
|||
* Ideally, a random number should be returned instead of the |
|||
* combination of a timer's value and a compile-time constant. |
|||
* As the virt platform does not have any random number generator, |
|||
* this is better than nothing but not necessarily really secure. |
|||
*/ |
|||
return RANDOM_CANARY_VALUE ^ read_cntpct_el0(); |
|||
} |
|||
|
Loading…
Reference in new issue