From 74d7cd9898ab68c33e0ee511304c77bb910a02cd Mon Sep 17 00:00:00 2001 From: MyungJoo Ham <myungjoo.ham@samsung.com> Date: Mon, 28 Mar 2016 04:35:49 +0000 Subject: [PATCH] arm: Expand memory validation Prevent SIGSEGV for write as well as read. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> --- src/arm/Ginit.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/arm/Ginit.c b/src/arm/Ginit.c index 1ed3dbfc..a23124d7 100644 --- a/src/arm/Ginit.c +++ b/src/arm/Ginit.c @@ -126,6 +126,11 @@ static int access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write, void *arg) { + /* validate address */ + const struct cursor *c = (const struct cursor *) arg; + if (c && validate_mem(addr)) + return -1; + if (write) { Debug (16, "mem[%x] <- %x\n", addr, *val); @@ -133,11 +138,6 @@ access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write, } else { - /* validate address */ - const struct cursor *c = (const struct cursor *) arg; - if (c && validate_mem(addr)) - return -1; - *val = *(unw_word_t *) addr; Debug (16, "mem[%x] -> %x\n", addr, *val); }