From 2344af22120f3092a044881c4ed14af17a0d6f41 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 15 Feb 2016 23:10:12 +0100
Subject: [PATCH xawtv3 9/9] alevtd: Drop supplementary group IDs when dropping
privileges
Noticed by rpmlint, seek POS36-C on the web for details about the problem.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
vbistuff/alevtd.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/vbistuff/alevtd.c b/vbistuff/alevtd.c
index c6211d3..2df4886 100644
--- a/vbistuff/alevtd.c
+++ b/vbistuff/alevtd.c
@@ -168,8 +168,10 @@ fix_ug(void)
}
/* set group */
- if (getegid() != gr->gr_gid || getgid() != gr->gr_gid)
+ if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
+ setgroups(0, NULL);
setgid(gr->gr_gid);
+ }
if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
xerror(LOG_ERR,"setgid failed",NULL);
exit(1);
@@ -177,8 +179,10 @@ fix_ug(void)
strncpy(group,gr->gr_name,16);
/* set user */
- if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid)
+ if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid) {
+ setgroups(0, NULL);
setuid(pw->pw_uid);
+ }
if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid) {
xerror(LOG_ERR,"setuid failed",NULL);
exit(1);
--
2.7.1