From d97d61cb3ece153b157604ee2cd04f442f8d1228 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 12 Feb 2013 12:42:40 +0100 Subject: [PATCH] Handle saved uid/gid properly --- suidgw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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"); } -- 2.39.2