From 557179afe0e43fa9abbe5dbcdfa1143d238a8805 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 13 Apr 2006 11:20:24 +0100 Subject: [PATCH] tmpdir: Ignore environment variables; use effective uid only. Tools which change uid without messing with the environment confuse tmpdir and persuade it to create directories in the wrong places and with the wrong permissions. --- tmpdir.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tmpdir.c b/tmpdir.c index 0920341..b2881c8 100644 --- a/tmpdir.c +++ b/tmpdir.c @@ -205,16 +205,12 @@ static char *goodtmp(void) /* --- Try making a directory in `/tmp' --- */ - if (!(q = getenv("USER")) && !(q = getenv("LOGNAME"))) - q = pw->pw_name; - if ((q = trytmp("/tmp", q)) != 0) + if ((q = trytmp("/tmp", pw->pw_name)) != 0) return (q); /* --- That failed: try a directory in the user's home --- */ - if (!(q = getenv("HOME"))) - q = pw->pw_dir; - if ((q = trytmp(q, "tmp")) != 0) + if ((q = trytmp(pw->pw_dir, "tmp")) != 0) return (q); /* --- Still no joy: give up --- * @@ -294,7 +290,7 @@ int main(int argc, char *argv[]) /* --- Initialize variables --- */ ego(argv[0]); - me = getuid(); + me = geteuid(); cp.cp_what = CP_WRWORLD | CP_WRGRP | CP_WROTHUSR | CP_STICKYOK; cp.cp_verbose = 0; cp.cp_report = 0; -- 2.11.0