From 5914fa6a53abecfa40eca88b00c22328eea8a45f Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Mon, 18 Jul 2005 23:18:10 +0000 Subject: [PATCH] Check members of the stack_t structure passed to sigaltstack individually to avoid problems with padding on 64 bit platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4168 --- coregrind/m_syswrap/syswrap-generic.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index d3b02d4b1..c86691dee 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -5275,7 +5275,10 @@ PRE(sys_sigaltstack) PRE_REG_READ2(int, "sigaltstack", const vki_stack_t *, ss, vki_stack_t *, oss); if (ARG1 != 0) { - PRE_MEM_READ( "sigaltstack(ss)", ARG1, sizeof(vki_stack_t) ); + const vki_stack_t *ss = (vki_stack_t *)ARG1; + PRE_MEM_READ( "sigaltstack(ss)", (Addr)&ss->ss_sp, sizeof(ss->ss_sp) ); + PRE_MEM_READ( "sigaltstack(ss)", (Addr)&ss->ss_flags, sizeof(ss->ss_flags) ); + PRE_MEM_READ( "sigaltstack(ss)", (Addr)&ss->ss_size, sizeof(ss->ss_size) ); } if (ARG2 != 0) { PRE_MEM_WRITE( "sigaltstack(oss)", ARG2, sizeof(vki_stack_t) );