Просмотр исходного кода

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.
Rich Felker 5 месяцев назад
Родитель
Сommit
ab31e9d6a0
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      src/legacy/getusershell.c

+ 4 - 2
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;
 }