From ab31e9d6a0fa7c5c408856c89df2dfb12c344039 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 21 Jun 2024 20:54:30 -0400 Subject: getusershell: skip blank lines and comments this interface does not have a lot of historical consensus on how it handles the contents of the /etc/shells file in regard to whitespace and comments, but the commonality between all checked is that they ignore lines that are blank or that begin with '#', so that is the behavior we adopt. --- src/legacy/getusershell.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/legacy/getusershell.c b/src/legacy/getusershell.c index 5fecdec..1c5d98e 100644 --- a/src/legacy/getusershell.c +++ b/src/legacy/getusershell.c @@ -25,8 +25,10 @@ char *getusershell(void) ssize_t l; if (!f) setusershell(); if (!f) return 0; - l = getline(&line, &linesize, f); - if (l <= 0) return 0; + do { + l = getline(&line, &linesize, f); + if (l <= 0) return 0; + } while (line[0] == '#' || line[0] == '\n'); if (line[l-1]=='\n') line[l-1]=0; return line; } -- cgit v1.1