From jlemon@americantv.com  Thu Feb  6 19:15:40 1997
Received: from who.cdrom.com (who.cdrom.com [204.216.27.3])
          by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA26665
          for <FreeBSD-gnats-submit@FreeBSD.ORG>; Thu, 6 Feb 1997 19:15:39 -0800 (PST)
Received: from sumatra.americantv.com (sumatra.americantv.com [199.184.181.250])
          by who.cdrom.com (8.7.5/8.6.11) with ESMTP id SAA19906
          for <FreeBSD-gnats-submit@freebsd.org>; Thu, 6 Feb 1997 18:42:36 -0800 (PST)
Received: (from jlemon@localhost) by sumatra.americantv.com (8.7.6/8.7.3) id VAA07321; Thu, 6 Feb 1997 21:00:05 -0600 (CST)
Message-Id: <199702070300.VAA07321@sumatra.americantv.com>
Date: Thu, 6 Feb 1997 21:00:05 -0600 (CST)
From: jlemon@americantv.com
Reply-To: jlemon@americantv.com
To: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: sigreturn() error code disagrees with man page
X-Send-Pr-Version: 3.2

>Number:         2682
>Category:       i386
>Synopsis:       sigreturn() error code disagrees with man page
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb  6 19:20:04 PST 1997
>Closed-Date:    Tue Mar 25 15:43:15 PST 1997
>Last-Modified:  Tue Mar 25 15:44:11 PST 1997
>Originator:     Jonathan Lemon
>Release:        FreeBSD 2.2-961014-SNAP i386
>Organization:
>Environment:
	-current

>Description:

	The manual page for sigreturn() says:

     [EFAULT]  Scp points to memory that is not a valid part of the process
               address space.

     [EINVAL]  The process status longword is invalid or would improperly
               raise the privilege level of the process.

	But sigreturn() returns EINVAL for all cases.

>How-To-Repeat:
>Fix:
	Change the manual page, or apply the following patch:

*** machdep.c   Thu Feb  6 20:34:22 1997
--- machdep.c.new       Thu Feb  6 20:36:04 1997
***************
*** 617,623 ****
        regs[tISP] = scp->sc_isp;
  
        if (useracc((caddr_t)scp, sizeof (*scp), B_WRITE) == 0)
!               return(EINVAL);
  
        if (scp->sc_onstack & 01)
                p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
--- 617,623 ----
        regs[tISP] = scp->sc_isp;
  
        if (useracc((caddr_t)scp, sizeof (*scp), B_WRITE) == 0)
!               return(EFAULT);
  
        if (scp->sc_onstack & 01)
                p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: mpp 
State-Changed-When: Tue Mar 25 15:43:15 PST 1997 
State-Changed-Why:  
Suggested fix applied, thanks: 

/home/ncvs/src/sys/i386/i386/machdep.c,v  <--  machdep.c 
new revision: 1.232; previous revision: 1.231 
>Unformatted:
