Received: from eggs.gnu.org ([2001:4830:134:3::10]:36521) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmxyk-00077o-PW for qemu-devel@nongnu.org; Fri, 07 Nov 2014 23:50:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xmxyd-00041q-EO for qemu-devel@nongnu.org; Fri, 07 Nov 2014 23:50:26 -0500 Received: from mail-wg0-f48.google.com ([74.125.82.48]:59829) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmxyd-00040k-8I for qemu-devel@nongnu.org; Fri, 07 Nov 2014 23:50:19 -0500 Received: by mail-wg0-f48.google.com with SMTP id m15so5090082wgh.35 for ; Fri, 07 Nov 2014 20:50:17 -0800 (PST) Message-ID: <545D935F.3070300@lekkertech.net> Date: Fri, 07 Nov 2014 19:51:59 -0800 From: Willem Pinckaers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH] coroutine-sigaltstack: Change jmp_buf to sigjmp_buf List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org This is a simple patch to change the type of old_env from jmp_buf to sigjmp_buf. old_env is used by sigsetjmp and as such should be a sigjmp_buf. This fixes a stack_chk fail in a OSX 32bit build. Since at least on OSX sigjmp_buf is four bytes larger then a jmpbuf, resulting in an overflow in sigsetjmp. Due to variable reordering this overwrites the stack cookie. Signed-off-by: Willem Pinckaers --- coroutine-sigaltstack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coroutine-sigaltstack.c b/coroutine-sigaltstack.c index 3de0bb3..63519ff 100644 --- a/coroutine-sigaltstack.c +++ b/coroutine-sigaltstack.c @@ -155,7 +155,7 @@ Coroutine *qemu_coroutine_new(void) stack_t oss; sigset_t sigs; sigset_t osigs; - jmp_buf old_env; + sigjmp_buf old_env; /* The way to manipulate stack is with the sigaltstack function. We * prepare a stack, with it delivering a signal to ourselves and then -- 1.9.3 (Apple Git-50)