summary refs log tree commit diff
path: root/misc/getusershell.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-07-05 12:05:16 +0000
committerUlrich Drepper <drepper@redhat.com>1998-07-05 12:05:16 +0000
commit71412a8c76fe28a62a2acf243f5ae4e91ddf632e (patch)
tree9da097ba8307f2f6de872968566071cc4eac3b1f /misc/getusershell.c
parent6777b467cec0f1bee82bbd5098bcfa006268fd9c (diff)
downloadglibc-71412a8c76fe28a62a2acf243f5ae4e91ddf632e.tar.gz
glibc-71412a8c76fe28a62a2acf243f5ae4e91ddf632e.tar.xz
glibc-71412a8c76fe28a62a2acf243f5ae4e91ddf632e.zip
Update.
1998-07-05 11:49  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv_conf.c (read_conf_file): Use feof_unlocked on private
	stream.
	* inet/ruserpass.c (token): Likewise.
	* nss/nsswitch.c (nss_parse_file): Likewise.
	* intl/localealias.c: Likewise.  Also for ferror.
	* time/getdate.c (__getdate_r): Likewise.

	* libio/Makefile (routines): Add iofgets_u.
	* libio/iofgets_u.c: New file.
	* libio/Versions: Add fgets_unlocked.
	* libio/stdio.h: Add prototype for fgets_unlocked.

	* misc/getttyent.c (getttyent): Use fgets_unlocked instead of fgets.
	* misc/getusershell.c (initshells): Likewise.
	* misc/mntent_r.c (__getmntent_r): Explicitly lock stream.  Use
	fgets_unlocked.
	* nss/nss_files/files-XXX.c (internal_getent): Likewise.
	* resolv/res_init.c (res_init): Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
Diffstat (limited to 'misc/getusershell.c')
-rw-r--r--misc/getusershell.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/misc/getusershell.c b/misc/getusershell.c
index 6b210b68ff..d822f554ea 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -96,6 +96,7 @@ initshells()
 	register char **sp, *cp;
 	register FILE *fp;
 	struct stat statb;
+	int flen;
 
 	if (shells != NULL)
 		free(shells);
@@ -122,7 +123,8 @@ initshells()
 	}
 	sp = shells;
 	cp = strings;
-	while (fgets(cp, statb.st_size - (cp - strings), fp) != NULL) {
+	flen = statb.st_size;
+	while (fgets_unlocked(cp, flen - (cp - strings), fp) != NULL) {
 		while (*cp != '#' && *cp != '/' && *cp != '\0')
 			cp++;
 		if (*cp == '#' || *cp == '\0')