From: Sami Kerola Date: Sat, 2 Jun 2012 10:11:25 +0000 (+0200) Subject: login: allow TTYGROUP name begin by number X-Git-Tag: v2.22-rc1~315^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10b3219a5f457a8db11c55336f31d2ef714f7bf6;p=thirdparty%2Futil-linux.git login: allow TTYGROUP name begin by number Assuming someone is using a TTYGROUP name beginnign by a digit the login was misbehaving with 'contains invalid numerical value: %s' message(s) in syslog. Please notice that group names that consist only digits as characters are valid (but likely to cause confusion, and chaos). Signed-off-by: Sami Kerola --- diff --git a/login-utils/login.c b/login-utils/login.c index 9db4f0fe6d..db3a93345e 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -319,15 +319,12 @@ static void chown_tty(struct login_context *cxt) grname = getlogindefs_str("TTYGROUP", TTYGRPNAME); if (grname && *grname) { - if (*grname >= 0 && *grname <= 9) /* group by ID */ - gid = (gid_t)getlogindefs_num("TTYGROUP", gid); - else { /* group by name */ - struct group *gr = getgrnam(grname); - if (gr) - gid = gr->gr_gid; - } + struct group *gr = getgrnam(grname); + if (gr) /* group by name */ + gid = gr->gr_gid; + else /* group by ID */ + gid = (gid_t) getlogindefs_num("TTYGROUP", gid); } - if (fchown(0, uid, gid)) /* tty */ chown_err(cxt->tty_name, uid, gid); if (fchmod(0, cxt->tty_mode))