Subject: port-alpha/21870: Add OSF1 setre[ug]id emulation
To: None <gnats-bugs@gnats.netbsd.org>
From: None <eric@cirr.com>
List: netbsd-bugs
Date: 06/12/2003 17:20:34
>Number:         21870
>Category:       port-alpha
>Synopsis:       Add setre[ug]id support to the OSF1 compatibility
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 12 22:21:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Eric Schnoebelen
>Release:        NetBSD 1.6.1_STABLE
>Organization:
Central Iowa (Model) Railroad, Plano, TX US
	
>Environment:
System: NetBSD milo.cirr.com 1.6.1_STABLE NetBSD 1.6.1_STABLE (MILO) #1: Sun Jun 1 20:44:15 CDT 2003 eric@milo.cirr.com:/rmt/.amd/egsner/root/work/eric/NetBSD-1.6/src/sys/arch/alpha/compile/MILO alpha
Architecture: alpha
Machine: alpha
>Description:
    An OSF1 application I needed to run required setreuid() and
    setregid(). They are unimplemented in NetBSD.
>How-To-Repeat:
    Attempt to execute owsadm.exe from Microsoft's FrontPage extentions
    for Tru64.  Application aborts with an unimplemented system call,
    setreuid().
>Fix:
    The following patch add support for setreuid() and setregid() to the
    OSF1 compatibility layer. The following patch works on NetBSD 1.6.1,
    and given that this portion of the code is unchanged in current,
    should work on -current as well.

Index: syscalls.master
===================================================================
RCS file: /cvsroot/src/sys/compat/osf1/syscalls.master,v
retrieving revision 1.39
diff -u -b -w -b -u -w -r1.39 syscalls.master
--- syscalls.master	2001/06/28 04:08:58	1.39
+++ syscalls.master	2003/06/02 03:44:05
@@ -220,8 +220,8 @@
 125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
 			    size_t len, int flags, caddr_t from, \
 			    int *fromlenaddr); }
-126	UNIMPL		setreuid
-127	UNIMPL		setregid
+126	NOARGS		{ int sys_setreuid(uid_t ruid, uid_t euid); }
+127	NOARGS		{ int sys_setregid(gid_t rgid, gid_t egid); }
 128	NOARGS		{ int sys___posix_rename(const char *from, \
 			    const char *to); }
 129	STD		{ int osf1_sys_truncate(const char *path, \
>Release-Note:
>Audit-Trail:
>Unformatted: