summaryrefslogtreecommitdiffstats
path: root/login-utils/login.c
diff options
context:
space:
mode:
authorSami Kerola2012-06-02 12:11:25 +0200
committerSami Kerola2012-06-02 15:10:28 +0200
commit10b3219a5f457a8db11c55336f31d2ef714f7bf6 (patch)
tree980a46d2b3f29be2fe470eef6404fe5e4ec4c000 /login-utils/login.c
parentbuild-sys: add su executable to .gitignore (diff)
downloadkernel-qcow2-util-linux-10b3219a5f457a8db11c55336f31d2ef714f7bf6.tar.gz
kernel-qcow2-util-linux-10b3219a5f457a8db11c55336f31d2ef714f7bf6.tar.xz
kernel-qcow2-util-linux-10b3219a5f457a8db11c55336f31d2ef714f7bf6.zip
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 <kerolasa@iki.fi>
Diffstat (limited to 'login-utils/login.c')
-rw-r--r--login-utils/login.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/login-utils/login.c b/login-utils/login.c
index 9db4f0fe6..db3a93345 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))