From d159876d64ad33eccdc56a6eb1afba96f9863a5d Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Sun, 17 Feb 2002 18:32:59 +0000 Subject: 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. (-: (This used to be commit 1b941e2c637e41049932945607149094342359c5) --- source3/lib/util_sec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source3/lib') 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); } -- cgit