diff --git a/Xprint/attributes.c b/Xprint/attributes.c index d02c54e37..3ad9ceca0 100644 --- a/Xprint/attributes.c +++ b/Xprint/attributes.c @@ -1170,7 +1170,14 @@ SendFileToCommand( if((pPasswd = getpwnam(userName))) { - setuid((uid_t)pPasswd->pw_uid); + if (setgid((gid_t)pPasswd->pw_gid) != 0) + perror("SendFileToCommand: setgid() failure."); + + if (initgroups(userName, (gid_t)pPasswd->pw_gid) != 0) + perror("SendFileToCommand: initgroups() failure."); + + if (setuid((uid_t)pPasswd->pw_uid) != 0) + perror("SendFileToCommand: setuid() failure."); } } }