* configure.in: Add checks for set{re,e,res}gid()
authorTom Yu <tlyu@mit.edu>
Mon, 23 Feb 1998 01:10:51 +0000 (01:10 +0000)
committerTom Yu <tlyu@mit.edu>
Mon, 23 Feb 1998 01:10:51 +0000 (01:10 +0000)
* seteuid.c: Include k5-util.h rather than k5-int.h.  Add
krb5_setegid().

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10468 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5util/ChangeLog
src/lib/krb5util/configure.in
src/lib/krb5util/seteuid.c

index 63a2c45c34f5e468ec41d009210ee3cb7faa1c5f..26e53f68f644eae4c56b5f8bd6555ba0e837e71b 100644 (file)
@@ -1,3 +1,10 @@
+Sun Feb 22 19:22:18 1998  Tom Yu  <tlyu@mit.edu>
+
+       * configure.in: Add checks for set{re,e,res}gid().
+
+       * seteuid.c: Include k5-util.h rather than k5-int.h.  Add
+       krb5_setegid().
+
 Wed Feb 18 16:26:00 1998  Tom Yu  <tlyu@mit.edu>
 
        * Makefile.in: Remove trailing slash from thisconfigdir.  Fix up
index 4db6fec014cb4dac94363a6f43ebdcbe130bd9b4..f03b15f8307b7787349742a39ae5520f218f00ee 100644 (file)
@@ -1,7 +1,7 @@
 AC_INIT(configure.in)
 CONFIG_RULES
 AC_CHECK_HEADERS(unistd.h stdlib.h sys/types.h)
-AC_CHECK_FUNCS(seteuid setresuid setreuid)
+AC_CHECK_FUNCS(seteuid setresuid setreuid setegid setresgid setregid)
 dnl AppendRule([all:: all-$(WHAT)])
 KRB5_BUILD_LIBRARY_STATIC
 KRB5_BUILD_LIBOBJS
index 25b3a87137f3e465a3445525155f007eaec4f5f7..ee848d0920d517b1413782b7bc91557eaeb90498 100644 (file)
@@ -21,7 +21,7 @@
 #include <sys/types.h>
 #endif
 
-#include <k5-int.h>
+#include <k5-util.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 
 #include <errno.h>
 
-int krb5_seteuid( euid_in)
+int krb5_seteuid(euid_in)
     int euid_in;
 {
     uid_t euid = (uid_t) euid_in;
 #if defined(HAVE_SETEUID)
-    return  (seteuid(euid)) ;
+    return (seteuid(euid));
 #else
 #if defined(HAVE_SETRESUID)
-    return (setresuid(getuid(), euid, geteuid())) ;
+    return (setresuid(getuid(), euid, geteuid()));
 #else
 #if defined(HAVE_SETREUID)
     return setreuid(geteuid(), euid); 
@@ -49,8 +49,29 @@ int krb5_seteuid( euid_in)
     /* You need to add a case to deal with this operating system.*/
     errno = EPERM;
     return -1;
-  
 #endif /* HAVE_SETREUID */
 #endif /* HAVE_SETRESUID */
 #endif /* HAVE_SETEUID */
 }
+
+int krb5_setegid(egid_in)
+    int egid_in;
+{
+    gid_t egid = (gid_t) egid_in;
+
+#ifdef HAVE_SETEGID
+    return (seteuid(egid));
+#else
+#ifdef HAVE_SETRESGID
+    return (setresgid(getgid(), egid, getegid()));
+#else
+#ifdef HAVE_SETREGID
+    return (setregid(getegid(), egid));
+#else /* HAVE_SETREGID */
+    /* You need to add a case to deal with this operating system.*/
+    errno = EPERM;
+    return -1;
+#endif /* HAVE_SETREGID */
+#endif /* HAVE_SETRESGID */
+#endif /* HAVE_SETEGID */
+}