From 6edef3777f9b9a26e63168bb81c8d4f4ddb17017 Mon Sep 17 00:00:00 2001 From: Jerry Snitselaar Date: Wed, 5 Jun 2019 11:51:33 -0700 Subject: [PATCH 2/2] trousers: don't use __no_optimize The trousers is failing annocheck hardened check due to __no_optimize being used for __tspi_memset(). Instead of __no_optimize use a asm memory barrier. Signed-off-by: Jerry Snitselaar Signed-off-by: Debora Velarde Babb --- src/include/spi_utils.h | 2 +- src/tspi/tsp_context_mem.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/include/spi_utils.h b/src/include/spi_utils.h index 11255b20a21d..6ef21ce0cc83 100644 --- a/src/include/spi_utils.h +++ b/src/include/spi_utils.h @@ -53,7 +53,7 @@ MUTEX_DECLARE_EXTERN(mem_cache_lock); void *calloc_tspi(TSS_HCONTEXT, UINT32); TSS_RESULT free_tspi(TSS_HCONTEXT, void *); TSS_RESULT __tspi_add_mem_entry(TSS_HCONTEXT, void *); -void * __no_optimize __tspi_memset(void *, int, size_t); +void * __tspi_memset(void *, int, size_t); /* secrets.c */ diff --git a/src/tspi/tsp_context_mem.c b/src/tspi/tsp_context_mem.c index 2982df9fed06..2769af3662b9 100644 --- a/src/tspi/tsp_context_mem.c +++ b/src/tspi/tsp_context_mem.c @@ -258,8 +258,10 @@ free_tspi(TSS_HCONTEXT tspContext, void *memPointer) } /* definition for a memset that cannot be optimized away */ -void * __no_optimize +void * __tspi_memset(void *s, int c, size_t n) { - return memset(s, c, n); + memset(s, c, n); + asm volatile("" ::: "memory"); + return s; } -- 2.27.0