summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/CCpp.cpp
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-11-24 15:06:43 +0100
committerKarel Klic <kklic@redhat.com>2009-11-24 15:06:43 +0100
commita2a69a438e47d361f3c58fe8d631df906e2120d1 (patch)
tree219fbdd4a115b46925a80e0482c24faaad1f2da2 /lib/Plugins/CCpp.cpp
parentf6e929ee12a08a95c263b9c4c3e89f6eab188c4c (diff)
parentbc5dfcff0c2eedd84a5f2bec27c519e2e90c5969 (diff)
downloadabrt-a2a69a438e47d361f3c58fe8d631df906e2120d1.tar.gz
abrt-a2a69a438e47d361f3c58fe8d631df906e2120d1.tar.xz
abrt-a2a69a438e47d361f3c58fe8d631df906e2120d1.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'lib/Plugins/CCpp.cpp')
-rw-r--r--lib/Plugins/CCpp.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index 83b0e9a..d83d9b5 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -99,10 +99,11 @@ static pid_t ExecVP(char** pArgs, uid_t uid, string& pOutput)
int pipeout[2];
pid_t child;
+ gid_t gid = uid;
struct passwd* pw = getpwuid(uid);
- if (!pw)
+ if (pw)
{
- throw CABRTException(EXCEP_PLUGIN, string(__func__) + ": cannot get GID for UID.");
+ gid = pw->pw_gid;
}
xpipe(pipeout);
@@ -124,8 +125,8 @@ static pid_t ExecVP(char** pArgs, uid_t uid, string& pOutput)
/* Not a good idea, we won't see any error messages */
/* close(STDERR_FILENO); */
- setgroups(1, &pw->pw_gid);
- setregid(pw->pw_gid, pw->pw_gid);
+ setgroups(1, &gid);
+ setregid(gid, gid);
setreuid(uid, uid);
setsid();