From owner-cvs-src@FreeBSD.ORG Tue Apr 5 22:41:49 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA31B16A4CE; Tue, 5 Apr 2005 22:41:49 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A259743D2F; Tue, 5 Apr 2005 22:41:49 +0000 (GMT) (envelope-from peter@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j35MfnUp083913; Tue, 5 Apr 2005 22:41:49 GMT (envelope-from peter@repoman.freebsd.org) Received: (from peter@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j35MfnAK083912; Tue, 5 Apr 2005 22:41:49 GMT (envelope-from peter) Message-Id: <200504052241.j35MfnAK083912@repoman.freebsd.org> From: Peter Wemm Date: Tue, 5 Apr 2005 22:41:49 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/compat/ia32 ia32_signal.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Apr 2005 22:41:49 -0000 peter 2005-04-05 22:41:49 UTC FreeBSD src repository Modified files: sys/compat/ia32 ia32_signal.h Log: Fix 32 bit signals on amd64. It turns out that I was sign extending the register values coming back from sigreturn(2). Normally this wouldn't matter because the 32 bit environment would truncate the upper 32 bits and re-save the truncated values at the next trap. However, if we got a fast second signal and it was pending while we were returning from sigreturn(2) in the signal trampoline, we'd never have had a chance to truncate the bogus values in 32 bit mode, and the new sendsig would get an EFAULT when trying to write to the bogus user stack address. Revision Changes Path 1.7 +72 -72 src/sys/compat/ia32/ia32_signal.h