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: