From: Martin Mares Date: Tue, 12 Feb 2013 11:42:40 +0000 (+0100) Subject: Handle saved uid/gid properly X-Git-Tag: v1.3~12 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=d97d61cb3ece153b157604ee2cd04f442f8d1228;p=suidgw.git Handle saved uid/gid properly --- diff --git a/suidgw.c b/suidgw.c index e8196ac..63ac0d3 100644 --- a/suidgw.c +++ b/suidgw.c @@ -6,6 +6,8 @@ #undef DEBUG +#define _GNU_SOURCE + #include #include #include @@ -139,10 +141,10 @@ static void check_stat(void) static void switch_ugid(void) { - if (setegid(use_gid) < 0) + if (setresgid(getgid(), use_gid, use_gid) < 0) die("Failed to set group id: %m"); - if (seteuid(use_uid) < 0) + if (setresuid(getuid(), use_uid, use_uid) < 0) die("Failed to set user id: %m"); }