X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fuser.c;h=e32a61ad3f57dda23021daf8835014b72885f7ce;hb=e2b5b211558ee778f07954d3843b914f19f6c6b5;hp=e7d7252e01394f2af3dcc443f229b037bcb4e12e;hpb=9ebd9a02892b0233080df2c2b435930b3b9f683b;p=openldap diff --git a/servers/slapd/user.c b/servers/slapd/user.c index e7d7252e01..e32a61ad3f 100644 --- a/servers/slapd/user.c +++ b/servers/slapd/user.c @@ -11,12 +11,18 @@ #include "portable.h" -#if defined(HAVE_PWD_H) && defined(HAVE_GRP_H) +#if defined(HAVE_SETUID) && defined(HAVE_SETGID) #include -#include + +#include + +#ifdef HAVE_PWD_H #include +#endif +#ifdef HAVE_GRP_H #include +#endif #include #include @@ -31,7 +37,7 @@ void slap_init_user( char *user, char *group ) { - uid_t uid = (gid_t) -1; + uid_t uid = (uid_t) -1; gid_t gid = (gid_t) -1; if ( user ) { @@ -104,11 +110,13 @@ slap_init_user( char *user, char *group ) gid, 0, 0 ); exit( 1 ); } +#ifdef HAVE_SETEGID if ( setegid( gid ) != 0 ) { Debug( LDAP_DEBUG_ANY, "Could not set effective group id to %d\n", gid, 0, 0 ); exit( 1 ); } +#endif } if ( uid >= 0 ) { @@ -117,11 +125,13 @@ slap_init_user( char *user, char *group ) uid, 0, 0 ); exit( 1 ); } +#ifdef HAVE_SETEUID if ( seteuid( uid ) != 0 ) { Debug( LDAP_DEBUG_ANY, "Could not set real user id to %d\n", uid, 0, 0 ); exit( 1 ); } +#endif } }