From 61c48ac854fc43b0f9eda84119446335b1d92a48 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Fri, 15 Jan 2016 16:08:58 -0800 Subject: [PATCH] Modify tests to use executable memory. The check_unreadble_elf_* tests only create a readable map. I changed libunwind to disallow unwinding through non-executable maps, so make the maps executable too. Bug: 26589772 Change-Id: Idbe6426ac4d3243779b819c8f1aebdcdacb0669f --- libbacktrace/backtrace_test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libbacktrace/backtrace_test.cpp b/libbacktrace/backtrace_test.cpp index 23636db0d..7d829fe74 100644 --- a/libbacktrace/backtrace_test.cpp +++ b/libbacktrace/backtrace_test.cpp @@ -1156,7 +1156,7 @@ TEST(libbacktrace, check_unreadable_elf_local) { int fd = open(tmp_so_name, O_RDONLY); ASSERT_TRUE(fd != -1); - void* map = mmap(NULL, map_size, PROT_READ, MAP_PRIVATE, fd, 0); + void* map = mmap(NULL, map_size, PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0); ASSERT_TRUE(map != MAP_FAILED); close(fd); ASSERT_TRUE(unlink(tmp_so_name) != -1); @@ -1206,7 +1206,7 @@ TEST(libbacktrace, check_unreadable_elf_remote) { exit(0); } - void* map = mmap(NULL, map_size, PROT_READ, MAP_PRIVATE, fd, 0); + void* map = mmap(NULL, map_size, PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0); if (map == MAP_FAILED) { fprintf(stderr, "Failed to map in memory: %s\n", strerror(errno)); unlink(tmp_so_name);