busybox.conf: USER.GROUP is _optional_
function old new delta main 785 809 +24 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		| @@ -261,9 +261,7 @@ static int ingroup(uid_t u, gid_t g) | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| /* This should probably be a libbb routine.  In that case, | ||||
|  * I'd probably rename it to something like bb_trimmed_slice. | ||||
|  */ | ||||
| /* libbb candidate */ | ||||
| static char *get_trimmed_slice(char *s, char *e) | ||||
| { | ||||
| 	/* First, consider the value at e to be nul and back up until we | ||||
| @@ -442,15 +440,16 @@ static void parse_config_file(void) | ||||
| 				/* Now get the user/group info. */ | ||||
|  | ||||
| 				s = skip_whitespace(e); | ||||
| 				if (*s == '\0') | ||||
| 					s = strcpy(buffer, "0.0"); | ||||
|  | ||||
| 				/* Note: we require whitespace between the mode and the | ||||
| 				 * user/group info. */ | ||||
| 				/* We require whitespace between mode and USER.GROUP */ | ||||
| 				if ((s == e) || !(e = strchr(s, '.'))) { | ||||
| 					errmsg = "uid.gid"; | ||||
| 					goto pe_label; | ||||
| 				} | ||||
|  | ||||
| 				*e = ':'; /* get_uidgid doesn't understand user.group */ | ||||
| 				*e = ':'; /* get_uidgid needs USER:GROUP syntax */ | ||||
| 				if (get_uidgid(&sct->m_ugid, s, /*allow_numeric:*/ 1) == 0) { | ||||
| 					errmsg = "unknown user/group"; | ||||
| 					goto pe_label; | ||||
| @@ -518,7 +517,7 @@ static void check_suid(int applet_no) | ||||
| 			/* same group / in group */ | ||||
| 			m >>= 3; | ||||
| 		if (!(m & S_IXOTH)) /* is x bit not set? */ | ||||
| 			bb_error_msg_and_die("you have no permission to run this applet!"); | ||||
| 			bb_error_msg_and_die("you have no permission to run this applet"); | ||||
|  | ||||
| 		/* We set effective AND saved ids. If saved-id is not set | ||||
| 		 * like we do below, seteuid(0) can still later succeed! */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user