From d83aff1aeddeb617f4cd3303bee220306005d0af Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 16 May 2011 13:53:19 +0200 Subject: busybox.conf: USER.GROUP is _optional_ function old new delta main 785 809 +24 Signed-off-by: Denys Vlasenko --- libbb/appletlib.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'libbb/appletlib.c') diff --git a/libbb/appletlib.c b/libbb/appletlib.c index ed60a1a0a..86b5cd381 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -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! */ -- cgit v1.2.3