#include <config.h>
#include <sys/types.h>
+#include <sys/stat.h>
#include <netinet/in.h>
#include <stdio.h>
#ifdef STDC_HEADERS
user_ngids = ngids;
}
+ /* Stash initial umask for later use. */
+ user_umask = umask(SUDO_UMASK);
+ umask(user_umask);
+
/* Setup debugging if indicated. */
if (debug_flags != NULL) {
sudo_debug_init(NULL, debug_flags);
*/
if (def_umask != 0777) {
cmnd_umask = def_umask;
- if (!def_umask_override) {
- mode_t omask = umask(cmnd_umask);
- cmnd_umask |= omask;
- umask(omask);
- }
+ if (!def_umask_override)
+ cmnd_umask |= user_umask;
}
if (ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
int cols;
int flags;
int max_groups;
+ mode_t umask;
uid_t uid;
uid_t gid;
pid_t sid;
#define user_uid (sudo_user.uid)
#define user_gid (sudo_user.gid)
#define user_sid (sudo_user.sid)
+#define user_umask (sudo_user.umask)
#define user_passwd (sudo_user.pw->pw_passwd)
#define user_dir (sudo_user.pw->pw_dir)
#define user_gids (sudo_user.gids)