From 44544132422ef87047490be3041da0bfebf27d69 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 21 Apr 2010 15:18:02 +0300 Subject: [PATCH] Account for possible unaligned access. --- src/x86/Ginit.c | 2 +- src/x86_64/Ginit.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c index bfcbe183..4ed88bbd 100644 --- a/src/x86/Ginit.c +++ b/src/x86/Ginit.c @@ -88,7 +88,7 @@ validate_mem (unw_word_t addr) { int i, victim; #ifdef HAVE_MINCORE - char mvec[1]; + char mvec[2]; /* Unaligned access may cross page boundary */ #endif addr = PAGE_START(addr); diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c index c67dde57..790f88be 100644 --- a/src/x86_64/Ginit.c +++ b/src/x86_64/Ginit.c @@ -87,7 +87,7 @@ validate_mem (unw_word_t addr) { int i, victim; #ifdef HAVE_MINCORE - char mvec[1]; + char mvec[2]; /* Unaligned access may cross page boundary */ #endif addr = PAGE_START(addr); @@ -102,7 +102,7 @@ validate_mem (unw_word_t addr) } #ifdef HAVE_MINCORE - if (mincore ((void *) addr, 1, mvec) == -1) + if (mincore ((void *) addr, sizeof (unw_word_t), mvec) == -1) #else if (msync ((void *) addr, 1, MS_ASYNC) == -1) #endif