diff options
author | Sami Kerola | 2012-06-02 12:11:25 +0200 |
---|---|---|
committer | Sami Kerola | 2012-06-02 15:10:28 +0200 |
commit | 10b3219a5f457a8db11c55336f31d2ef714f7bf6 (patch) | |
tree | 980a46d2b3f29be2fe470eef6404fe5e4ec4c000 /login-utils/login.c | |
parent | build-sys: add su executable to .gitignore (diff) | |
download | kernel-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.c | 13 |
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)) |