diff options
-rw-r--r-- | source3/lib/util_sec.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/lib/util_sec.c b/source3/lib/util_sec.c index dd9a64d534..ac808b7fef 100644 --- a/source3/lib/util_sec.c +++ b/source3/lib/util_sec.c @@ -48,6 +48,8 @@ static uid_t initial_uid; static gid_t initial_gid; +static BOOL sec_initialised; + /**************************************************************************** remember what uid we got started as - this allows us to run correctly as non-root while catching trapdoor systems @@ -56,6 +58,8 @@ void sec_init(void) { initial_uid = geteuid(); initial_gid = getegid(); + + sec_initialise = True; } /**************************************************************************** @@ -63,6 +67,9 @@ some code (eg. winbindd) needs to know what uid we started as ****************************************************************************/ uid_t sec_initial_uid(void) { + if (!sec_initialise) + smb_panic("sec_initial_uid() called before sec_init()\n"); + return initial_uid; } @@ -71,6 +78,9 @@ some code (eg. winbindd, profiling shm) needs to know what gid we started as ****************************************************************************/ gid_t sec_initial_gid(void) { + if (!sec_initialise) + smb_panic("sec_initial_gid() called before sec_init()\n"); + return initial_gid; } @@ -79,6 +89,9 @@ are we running in non-root mode? ****************************************************************************/ BOOL non_root_mode(void) { + if (!sec_initialise) + smb_panic("non_root_mode() called before sec_init()\n"); + return (initial_uid != (uid_t)0); } |