mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	daemon: reset gids too, not just uids
This commit is contained in:
		
							parent
							
								
									fecd0dc801
								
							
						
					
					
						commit
						a1598c742e
					
				
					 1 changed files with 8 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -57,21 +57,29 @@ void pa_drop_root(void) {
 | 
			
		|||
 | 
			
		||||
#ifdef HAVE_GETUID
 | 
			
		||||
    uid_t uid;
 | 
			
		||||
    gid_t gid;
 | 
			
		||||
 | 
			
		||||
    pa_log_debug(_("Cleaning up privileges."));
 | 
			
		||||
    uid = getuid();
 | 
			
		||||
    gid = getgid();
 | 
			
		||||
 | 
			
		||||
#if defined(HAVE_SETRESUID)
 | 
			
		||||
    pa_assert_se(setresuid(uid, uid, uid) >= 0);
 | 
			
		||||
    pa_assert_se(setresgid(gid, gid, gid) >= 0);
 | 
			
		||||
#elif defined(HAVE_SETREUID)
 | 
			
		||||
    pa_assert_se(setreuid(uid, uid) >= 0);
 | 
			
		||||
    pa_assert_se(setregid(gid, gid) >= 0);
 | 
			
		||||
#else
 | 
			
		||||
    pa_assert_se(setuid(uid) >= 0);
 | 
			
		||||
    pa_assert_se(seteuid(uid) >= 0);
 | 
			
		||||
    pa_assert_se(setgid(gid) >= 0);
 | 
			
		||||
    pa_assert_se(setegid(gid) >= 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    pa_assert_se(getuid() == uid);
 | 
			
		||||
    pa_assert_se(geteuid() == uid);
 | 
			
		||||
    pa_assert_se(getgid() == gid);
 | 
			
		||||
    pa_assert_se(getegid() == gid);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_SYS_PRCTL_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue