diff options
author | Tim Potter <tpot@samba.org> | 2002-02-17 18:32:59 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-02-17 18:32:59 +0000 |
commit | 1b941e2c637e41049932945607149094342359c5 (patch) | |
tree | 80812a95fcadb99f19149bbe0cac75a18cafd696 /source/lib/util_sec.c | |
parent | 5efe39af0c89e549bb8211a39a949f80f6d1bf78 (diff) | |
download | samba-1b941e2c637e41049932945607149094342359c5.tar.gz samba-1b941e2c637e41049932945607149094342359c5.tar.xz samba-1b941e2c637e41049932945607149094342359c5.zip |
Do a smb_panic() if sec_initial_[ug]id() or non_root_mode() is called
without before sec_init(). This should avoid the formation of another
magic function club. (-:
Diffstat (limited to 'source/lib/util_sec.c')
-rw-r--r-- | source/lib/util_sec.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/lib/util_sec.c b/source/lib/util_sec.c index dd9a64d534b..ac808b7fef7 100644 --- a/source/lib/util_sec.c +++ b/source/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); } |