diff mbox

[xawtv3] alevtd: Drop supplementary group IDs when dropping privileges

Message ID 1455574438-27640-1-git-send-email-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hans de Goede Feb. 15, 2016, 10:13 p.m. UTC
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 mbox

Patch

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);