daemon: no initgroups() when already running as the configured user
We can assume that initgroups() would be a no-op in that case, however initgroups() is not allowed for unprivileged users anyway.
This commit is contained in:
		
							
								
								
									
										2
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,4 +1,6 @@ | ||||
| ver 0.18.7 (not yet released) | ||||
| * daemon: don't initialize supplementary groups when already running | ||||
|   as the configured user | ||||
|  | ||||
| ver 0.18.6 (2013/12/24) | ||||
| * input | ||||
|   | ||||
| @@ -116,7 +116,11 @@ daemonize_set_user(void) | ||||
| 	/* init supplementary groups | ||||
| 	 * (must be done before we change our uid) | ||||
| 	 */ | ||||
| 	if (!had_group && initgroups(user_name, user_gid) == -1) { | ||||
| 	if (!had_group && | ||||
| 	    /* no need to set the new user's supplementary groups if | ||||
| 	       we are already this user */ | ||||
| 	    user_uid != getuid() && | ||||
| 	    initgroups(user_name, user_gid) == -1) { | ||||
| 		FormatFatalSystemError("Failed to set supplementary groups " | ||||
| 				       "of user \"%s\"", | ||||
| 				       user_name); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann