From: Karel Zak Date: Tue, 6 Jan 2015 09:57:09 +0000 (+0100) Subject: chsh: simplify get_shell_list() X-Git-Tag: v2.26-rc1~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84705c8b89d6ae13610ef364bacf4342a90953ad;p=thirdparty%2Futil-linux.git chsh: simplify get_shell_list() Signed-off-by: Karel Zak --- diff --git a/login-utils/chsh.c b/login-utils/chsh.c index a84e3ff745..fd2893e955 100644 --- a/login-utils/chsh.c +++ b/login-utils/chsh.c @@ -88,7 +88,8 @@ static int get_shell_list(const char *shell_name) FILE *fp; int found = 0; char *buf = NULL; - size_t sz = 0, len; + size_t sz = 0; + ssize_t len; fp = fopen(_PATH_SHELLS, "r"); if (!fp) { @@ -96,13 +97,9 @@ static int get_shell_list(const char *shell_name) warnx(_("No known shells.")); return 0; } - while (getline(&buf, &sz, fp) != -1) { - len = strlen(buf); - /* ignore comments */ - if (*buf == '#') - continue; - /* skip blank lines*/ - if (len < 2) + while ((len = getline(&buf, &sz, fp)) != -1) { + /* ignore comments and blank lines */ + if (*buf == '#' || len < 2) continue; /* strip the ending newline */ if (buf[len - 1] == '\n')