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 <[email protected]> --- 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 11255b2..6ef21ce 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 2982df9..2769af3 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.21.0 _______________________________________________ TrouSerS-tech mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/trousers-tech
