diff options
Diffstat (limited to 'source3/web/cgi.c')
-rw-r--r-- | source3/web/cgi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source3/web/cgi.c b/source3/web/cgi.c index b861b2d780..b97ed2578c 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -24,6 +24,7 @@ #include "intl/lang_tdb.h" #include "auth.h" #include "secrets.h" +#include "../lib/util/setid.h" #define MAX_VARIABLES 10000 @@ -328,7 +329,7 @@ static void cgi_web_auth(void) C_user = SMB_STRDUP(user); - if (!setuid(0)) { + if (!samba_setuid(0)) { C_pass = secrets_fetch_generic("root", "SWAT"); if (C_pass == NULL) { char *tmp_pass = NULL; @@ -344,7 +345,7 @@ static void cgi_web_auth(void) TALLOC_FREE(tmp_pass); } } - setuid(pwd->pw_uid); + samba_setuid(pwd->pw_uid); if (geteuid() != pwd->pw_uid || getuid() != pwd->pw_uid) { printf("%sFailed to become user %s - uid=%d/%d<br>%s\n", head, user, (int)geteuid(), (int)getuid(), tail); |