diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/include/includes.h | 3 | ||||
-rw-r--r-- | source4/ntvfs/unixuid/vfs_unixuid.c | 11 |
2 files changed, 9 insertions, 5 deletions
diff --git a/source4/include/includes.h b/source4/include/includes.h index e60bf9035d..46b158ec08 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -69,4 +69,7 @@ #include "../lib/util/smb_threads.h" #include "../lib/util/smb_threads_internal.h" +/* samba_setXXid functions. */ +#include "../lib/util/setid.h" + #endif /* _INCLUDES_H */ diff --git a/source4/ntvfs/unixuid/vfs_unixuid.c b/source4/ntvfs/unixuid/vfs_unixuid.c index c98d3867c9..b6da79064b 100644 --- a/source4/ntvfs/unixuid/vfs_unixuid.c +++ b/source4/ntvfs/unixuid/vfs_unixuid.c @@ -28,6 +28,7 @@ #include "libcli/wbclient/wbclient.h" #define TEVENT_DEPRECATED #include <tevent.h> +#include "../lib/util/setid.h" NTSTATUS ntvfs_unixuid_init(void); @@ -73,15 +74,15 @@ static struct security_unix_token *save_unix_security(TALLOC_CTX *mem_ctx) */ static NTSTATUS set_unix_security(struct security_unix_token *sec) { - seteuid(0); + samba_seteuid(0); - if (setgroups(sec->ngroups, sec->groups) != 0) { + if (samba_setgroups(sec->ngroups, sec->groups) != 0) { return NT_STATUS_ACCESS_DENIED; } - if (setegid(sec->gid) != 0) { + if (samba_setegid(sec->gid) != 0) { return NT_STATUS_ACCESS_DENIED; } - if (seteuid(sec->uid) != 0) { + if (samba_seteuid(sec->uid) != 0) { return NT_STATUS_ACCESS_DENIED; } return NT_STATUS_OK; @@ -115,7 +116,7 @@ static int unixuid_event_nesting_hook(struct tevent_context *ev, return -1; } *(struct security_unix_token **)stack_ptr = sec_ctx; - if (seteuid(0) != 0 || setegid(0) != 0) { + if (samba_seteuid(0) != 0 || samba_setegid(0) != 0) { DEBUG(0,("%s: Failed to change to root\n", location)); return -1; } |