You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trousers/trousers-0.3.14-no-optimize...

50 lines
1.5 KiB

From 6edef3777f9b9a26e63168bb81c8d4f4ddb17017 Mon Sep 17 00:00:00 2001
From: Jerry Snitselaar <jsnitsel@redhat.com>
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 <jsnitsel@redhat.com>
Signed-off-by: Debora Velarde Babb <debora@linux.ibm.com>
---
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