]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
solaris10-suser-replace-20061228
authorDale Ghent <daleg@umbc.edu>
Thu, 28 Dec 2006 21:48:25 +0000 (21:48 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 28 Dec 2006 21:48:25 +0000 (21:48 +0000)
FIXES 50246

suser is dead, long live suser

src/afs/SOLARIS/osi_machdep.h
src/afs/afs_osi.c
src/afs/sysincludes.h

index b2731aee3a3892b70e97085c33e53dee16e1ffc2..eb94b2d7c8195be2324b897928eebd54d796735e 100644 (file)
@@ -60,8 +60,10 @@ extern void *afs_osi_Alloc_NoSleep(size_t size);
 #define gop_rdwr(rw,gp,base,len,offset,segflg,ioflag,ulimit,cr,aresid) \
   vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(ioflag),(ulimit),(cr),(aresid))
 
-#define        afs_suser(x)        suser(x)
 
+#if !defined(AFS_SUN510_ENV)
+#define        afs_suser(x)        suser(x)
+#endif
 
 #ifdef KERNEL
 /*
index e962fb95050c7d9094c4c344020eaf8ebbe318cd..f469939a4a9e23f15231141f2c1eb51431f5394f 100644 (file)
@@ -305,10 +305,12 @@ shutdown_osi(void)
 
 #ifndef AFS_OBSD_ENV
 int
-afs_osi_suser(void *credp)
+afs_osi_suser(void *cr)
 {
-#if defined(AFS_SUN5_ENV)
-    return afs_suser(credp);
+#if defined(AFS_SUN510_ENV)
+    return (priv_policy(cr, PRIV_SYS_SUSER_COMPAT, B_FALSE, EPERM, NULL) == 0);
+#elif defined(AFS_SUN5_ENV)
+    return afs_suser(cr);
 #else
     return afs_suser(NULL);
 #endif
index d0e369dae42f4b4595dc448cf30a139ced96eca2..51b2366ade0aa294a4bb89428453855f1d1f49a2 100644 (file)
@@ -212,6 +212,7 @@ typedef unsigned short etap_event_t;
 
 #ifdef AFS_SUN510_ENV
 #include <sys/cred_impl.h>
+#include <sys/policy.h>
 #endif
 
 #include "h/socket.h"