aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2024-06-21 20:54:30 -0400
committerRich Felker <dalias@aerifal.cx>2024-06-21 20:54:30 -0400
commitab31e9d6a0fa7c5c408856c89df2dfb12c344039 (patch)
tree9cb51edb58bab3e0a5875fc18e3cf952ceac0450
parent53ac44ff4c0e91536e1e34e8e59e19d2a1196a67 (diff)
downloadmusl-master.zip
musl-master.tar.gz
musl-master.tar.bz2
getusershell: skip blank lines and commentsHEADmaster
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.
-rw-r--r--src/legacy/getusershell.c6
1 files 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;
}