From 9a37f39d564efcaf2461c55406e099ad31a8e3fa Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Fri, 25 May 2012 22:21:55 -0500 Subject: [PATCH] Fix KTempFile not obeying special bits on file creation This closes Bug 349 (cherry picked from commit 9068fffdf82dc9cf60e83639b3a9b397761304cd) --- kdecore/ktempfile.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kdecore/ktempfile.cpp b/kdecore/ktempfile.cpp index f439b55ef..b745bbf57 100644 --- a/kdecore/ktempfile.cpp +++ b/kdecore/ktempfile.cpp @@ -117,8 +117,12 @@ KTempFile::create(const TQString &filePrefix, const TQString &fileExtension, // Success! bOpen = true; - // Set uid/gid (necessary for SUID programs) - fchown(mFd, getuid(), getgid()); + uid_t uid = getuid(); + uid_t euid = geteuid(); + if (uid != euid) { + // Set uid/gid (necessary for SUID programs) + fchown(mFd, getuid(), getgid()); + } // Set close on exec fcntl(mFd, F_SETFD, FD_CLOEXEC);