--- ../foo/arts-1.0.4/mcop/mcoputils.cc 2002-02-09 14:10:12.000000000 +0100 +++ mcop/mcoputils.cc 2002-12-15 21:41:24.000000000 +0100 @@ -31,6 +31,7 @@ #include #include #include +#include //included to get logname from uid #include using namespace std; @@ -73,8 +74,20 @@ string MCOPUtils::createFilePath(string name) { - string logname = "unknown"; - if(getenv("LOGNAME")) logname = getenv("LOGNAME"); +// changed to get logname from uid instead of environment variable +// LOGNAME to avoid trouble when LOGNAME does not exist or +// is wrong (such as in kdesu environment) +// S. Voitzsch Sebastian.Voitzsch@web.de +// 2002-12-03 + + struct passwd *pwd = NULL; + pwd = getpwuid(geteuid()); + if (pwd == NULL) arts_fatal("could not get user name from user id"); + + string logname = "unknown"; + logname = pwd->pw_name; + +// if(getenv("LOGNAME")) logname = getenv("LOGNAME"); string tmpdir = "/tmp/mcop-"+uglify(logname); if(mkdir(tmpdir.c_str(),0700) != 0 && errno != EEXIST)