You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by rd...@apache.org on 2023/03/27 03:28:09 UTC
[incubator-teaclave-sgx-sdk] 01/02: Fix backtrace access to illegal memory
This is an automated email from the ASF dual-hosted git repository.
rduan pushed a commit to branch v2.0.0-preview
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-sgx-sdk.git
commit d2656c6f1075f494a9053170ec65731cf7a16359
Author: volcano <vo...@163.com>
AuthorDate: Mon Mar 27 10:19:18 2023 +0800
Fix backtrace access to illegal memory
---
sgx_backtrace/sgx_backtrace_sys/libbacktrace/elf.c | 30 ++++++++++------------
sgx_unwind/libunwind/src/x86_64/Ginit.c | 10 ++++----
2 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/sgx_backtrace/sgx_backtrace_sys/libbacktrace/elf.c b/sgx_backtrace/sgx_backtrace_sys/libbacktrace/elf.c
index 7bf46b65..4b493ef2 100644
--- a/sgx_backtrace/sgx_backtrace_sys/libbacktrace/elf.c
+++ b/sgx_backtrace/sgx_backtrace_sys/libbacktrace/elf.c
@@ -3000,22 +3000,20 @@ elf_add (struct backtrace_state *state, const char *filename, int descriptor,
debug_view_valid = 0;
}
- if (!backtrace_dwarf_add (state, base_address,
- sections[DEBUG_INFO].data,
- sections[DEBUG_INFO].size,
- sections[DEBUG_LINE].data,
- sections[DEBUG_LINE].size,
- sections[DEBUG_ABBREV].data,
- sections[DEBUG_ABBREV].size,
- sections[DEBUG_RANGES].data,
- sections[DEBUG_RANGES].size,
- sections[DEBUG_STR].data,
- sections[DEBUG_STR].size,
- ehdr.e_ident[EI_DATA] == ELFDATA2MSB,
- error_callback, data, fileline_fn))
- goto fail;
-
- *found_dwarf = 1;
+ if (backtrace_dwarf_add (state, base_address,
+ sections[DEBUG_INFO].data,
+ sections[DEBUG_INFO].size,
+ sections[DEBUG_LINE].data,
+ sections[DEBUG_LINE].size,
+ sections[DEBUG_ABBREV].data,
+ sections[DEBUG_ABBREV].size,
+ sections[DEBUG_RANGES].data,
+ sections[DEBUG_RANGES].size,
+ sections[DEBUG_STR].data,
+ sections[DEBUG_STR].size,
+ ehdr.e_ident[EI_DATA] == ELFDATA2MSB,
+ error_callback, data, fileline_fn))
+ *found_dwarf = 1;
return 1;
diff --git a/sgx_unwind/libunwind/src/x86_64/Ginit.c b/sgx_unwind/libunwind/src/x86_64/Ginit.c
index cf65579c..7bbd1db2 100644
--- a/sgx_unwind/libunwind/src/x86_64/Ginit.c
+++ b/sgx_unwind/libunwind/src/x86_64/Ginit.c
@@ -134,11 +134,11 @@ write_validate (void *addr)
static int (*mem_validate_func) (void *addr, size_t len);
static int msync_validate (void *addr, size_t len)
{
- // #ifdef HAVE_SGX
- // extern int sgx_is_within_enclave(const void *addr, size_t size);
- // if(!sgx_is_within_enclave(addr, len))
- // abort();
- // #endif
+#ifdef HAVE_SGX
+ extern int sgx_is_within_enclave(const void *addr, size_t size);
+ if(!sgx_is_within_enclave(addr, len))
+ abort();
+#endif
if (msync (addr, len, MS_ASYNC) != 0)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org