chsh: Verify that login shell path is absolute
The getusershell implementation of musl returns every line within the /etc/shells file, which even includes comments. Only consider absolute paths for login shells. Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
This commit is contained in:
parent
812f934e77
commit
7321ceaf69
@ -574,7 +574,8 @@ int main (int argc, char **argv)
|
|||||||
fail_exit (1);
|
fail_exit (1);
|
||||||
}
|
}
|
||||||
if ( !amroot
|
if ( !amroot
|
||||||
&& ( is_restricted_shell (loginsh)
|
&& ( loginsh[0] != '/'
|
||||||
|
|| is_restricted_shell (loginsh)
|
||||||
|| (access (loginsh, X_OK) != 0))) {
|
|| (access (loginsh, X_OK) != 0))) {
|
||||||
fprintf (stderr, _("%s: %s is an invalid shell\n"), Prog, loginsh);
|
fprintf (stderr, _("%s: %s is an invalid shell\n"), Prog, loginsh);
|
||||||
fail_exit (1);
|
fail_exit (1);
|
||||||
|
Loading…
Reference in New Issue
Block a user