about summary refs log tree commit diff
path: root/misc/fstab.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc/fstab.c')
-rw-r--r--misc/fstab.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/misc/fstab.c b/misc/fstab.c
index c3c27df6ef..30a60a734c 100644
--- a/misc/fstab.c
+++ b/misc/fstab.c
@@ -1,5 +1,5 @@
-/* 
-Copyright (C) 1995 Free Software Foundation, Inc.
+/*
+Copyright (C) 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,9 @@ Cambridge, MA 02139, USA.  */
 #include <stdio.h>
 
 static FILE *fstab;
+static struct mntent mntres;
+static char buffer[8192];
+
 
 static FILE *
 fstab_stream (void)
@@ -48,6 +51,10 @@ static struct fstab *
 mnt2fs (struct mntent *m)
 {
   static struct fstab f;
+
+  if (m == NULL)
+    return NULL;
+
   f.fs_spec = m->mnt_fsname;
   f.fs_file = m->mnt_dir;
   f.fs_vfstype = m->mnt_type;
@@ -70,8 +77,8 @@ getfsent (void)
 
   if (! s)
     return NULL;
-  
-  return mnt2fs (getmntent (s));
+
+  return mnt2fs (__getmntent_r (s, &mntres, buffer, sizeof buffer));
 }
 
 struct fstab *
@@ -80,7 +87,7 @@ getfsspec (name)
 {
   struct mntent *m;
   if (setfsent ())
-    while (m = getmntent (fstab))
+    while (m = __getmntent_r (fstab, &mntres, buffer, sizeof buffer))
       if (!strcmp (m->mnt_fsname, name))
 	return mnt2fs (m);
   return NULL;
@@ -88,11 +95,11 @@ getfsspec (name)
 
 struct fstab *
 getfsfile (name)
-	register const char *name;
+     register const char *name;
 {
   struct mntent *m;
   if (setfsent ())
-    while (m = getmntent (fstab))
+    while (m = __getmntent_r (fstab, &mntres, buffer, sizeof buffer))
       if (!strcmp (m->mnt_dir, name))
 	return mnt2fs (m);
   return NULL;