blob: 1a24fd51179dd8e5fd4fbb5a953878d4efdf279f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
--- ../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 <errno.h>
#include <config.h>
#include <ctype.h>
+#include <pwd.h> //included to get logname from uid
#include <map>
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)
|