update from main archive 961030
authordrepper <drepper>
Thu, 31 Oct 1996 02:50:29 +0000 (02:50 +0000)
committerdrepper <drepper>
Thu, 31 Oct 1996 02:50:29 +0000 (02:50 +0000)
assert/assert.h
ctype/ctype.h
dirent/tst-seekdir.c
elf/dlfcn.h
elf/rtld.c
grp/fgetgrent.c
grp/fgetgrent_r.c
grp/grp.h
grp/testgrp.c
inet/getnetgrent_r.c
inet/herrno.c

index 0681fa4..c670a66 100644 (file)
@@ -1,23 +1,23 @@
 /* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /*
- *     ANSI Standard: 4.2 DIAGNOSTICS  <assert.h>
+ *     ISO C Standard: 4.2 DIAGNOSTICS <assert.h>
  */
 
 #ifdef _ASSERT_H
index c97c3e0..18e3a3d 100644 (file)
@@ -1,23 +1,23 @@
 /* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /*
- *     ANSI Standard 4.3: CHARACTER HANDLING   <ctype.h>
+ *     ISO C Standard 4.3: CHARACTER HANDLING  <ctype.h>
  */
 
 #ifndef        _CTYPE_H
@@ -65,7 +65,7 @@ enum
 
    These point into arrays of 384, so they can be indexed by any `unsigned
    char' value [0,255]; by EOF (-1); or by any `signed char' value
-   [-128,-1).  ANSI requires that the ctype functions work for `unsigned
+   [-128,-1).  ISO C requires that the ctype functions work for `unsigned
    char' values and for EOF; we also support negative `signed char' values
    for broken old programs.  The case conversion arrays are of `int's
    rather than `unsigned char's because tolower (EOF) must be EOF, which
index f12b13f..5a5c7fd 100644 (file)
@@ -7,7 +7,7 @@ main (int argc, char *argv[])
 {
 
   DIR * dirp;
-  long save3;
+  long int save3 = 0;
   int i = 0;
   struct dirent *dp;
 
index b26a38f..b59bebd 100644 (file)
@@ -1,25 +1,26 @@
 /* dlfcn.h -- User functions for run-time dynamic loading.
-Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   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
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef        _DLFCN_H
-#define        _DLFCN_H 1
 
+#define        _DLFCN_H 1
+#include <features.h>
 
 /* The MODE argument to `dlopen' contains one of the following: */
 #define RTLD_LAZY      0x001   /* Lazy function call binding.  */
@@ -33,30 +34,30 @@ Cambridge, MA 02139, USA.  */
 
 /* Open the shared object FILE and map it in; return a handle that can be
    passed to `dlsym' to get symbol values from it.  */
-extern void *dlopen (const char *__file, int __mode);
+extern void *dlopen __P ((__const char *__file, int __mode));
 
 /* Unmap and close a shared object opened by `dlopen'.
    The handle cannot be used again after calling `dlclose'.  */
-extern int dlclose (void *__handle);
+extern int dlclose __P ((void *__handle));
 
 /* Find the run-time address in the shared object HANDLE refers to
    of the symbol called NAME.  */
-extern void *dlsym (void *__handle, const char *__name);
+extern void *dlsym __P ((void *__handle, __const char *__name));
 
 /* When any of the above functions fails, call this function
    to return a string describing the error.  Each call resets
    the error string so that a following call returns null.  */
-extern char *dlerror (void);
+extern char *dlerror __P ((void));
 
 /* Fill in *INFO with the following information about ADDRESS.
    Returns 0 iff no shared object's segments contain that address.  */
 typedef struct
   {
-    const char *dli_fname;     /* File name of defining object.  */
+    __const char *dli_fname;   /* File name of defining object.  */
     void *dli_fbase;           /* Load address of that object.  */
-    const char *dli_sname;     /* Name of nearest symbol.  */
+    __const char *dli_sname;   /* Name of nearest symbol.  */
     void *dli_saddr;           /* Exact value of nearest symbol.  */
   } Dl_info;
-extern int dladdr (void *__address, Dl_info *__info);
+extern int dladdr __P ((void *__address, Dl_info *__info));
 
 #endif /* dlfcn.h */
index 1fae348..b3018fb 100644 (file)
@@ -285,9 +285,7 @@ of this helper program; chances are you did not intend to run this program.\n",
   if (mode == verify)
     /* We were called just to verify that this is a dynamic executable
        using us as the program interpreter.  */
-    _exit ((strcmp (_dl_rtld_map.l_libname, _dl_rtld_map.l_name) ||
-           l->l_ld == NULL)
-          ? EXIT_FAILURE : EXIT_SUCCESS);
+    _exit (l->l_ld == NULL ? EXIT_FAILURE : EXIT_SUCCESS);
 
   /* Extract the contents of the dynamic section for easy access.  */
   elf_get_dynamic_info (l->l_ld, l->l_info);
index 95ae2ec..66dd305 100644 (file)
@@ -25,7 +25,11 @@ struct group *
 fgetgrent (FILE *stream)
 {
   static char buffer[BUFSIZ];
-  static struct group result;
+  static struct group resbuf;
+  struct group *result;
 
-  return __fgetgrent_r (stream, &result, buffer, sizeof buffer);
+  if (__fgetgrent_r (stream, &resbuf, buffer, sizeof buffer, &result) != 0)
+    return NULL;
+
+  return result;
 }
index d8a8bfb..e9a2c25 100644 (file)
@@ -42,8 +42,9 @@ LINE_PARSER
 
 
 /* Read one entry from the given stream.  */
-struct group *
-__fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
+int
+__fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
+              struct group **result)
 {
   char *p;
 
@@ -51,7 +52,10 @@ __fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
     {
       p = fgets (buffer, buflen, stream);
       if (p == NULL)
-       return NULL;
+       {
+         *result = NULL;
+         return errno;
+       }
 
       /* Skip leading blanks.  */
       while (isspace (*p))
@@ -59,8 +63,9 @@ __fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
     } while (*p == '\0' || *p == '#' ||        /* Ignore empty and comment lines.  */
             /* Parse the line.  If it is invalid, loop to
                get the next line of the file to parse.  */
-            ! parse_line (p, result, (void *) buffer, buflen));
+            ! parse_line (p, resbuf, (void *) buffer, buflen));
 
-  return result;
+  *result = resbuf;
+  return 0;
 }
 weak_alias (__fgetgrent_r, fgetgrent_r)
index 6a88191..c03772c 100644 (file)
--- a/grp/grp.h
+++ b/grp/grp.h
@@ -51,7 +51,7 @@ extern FILE *__grpopen __P ((void));
 
 /* Read a group entry from STREAM, filling in G.
    Return the `struct group' of G if successful, NULL on failure.  */
-extern struct group *__grpread __P ((FILE * __stream, __ptr_t __g));
+extern struct group *__grpread __P ((FILE *__stream, __ptr_t __g));
 
 /* Return a chunk of memory containing pre-initialized data for __grpread.  */
 extern __ptr_t __grpalloc __P ((void));
@@ -76,7 +76,7 @@ extern struct group *getgrent __P ((void));
 
 #ifdef __USE_SVID
 /* Read a group entry from STREAM.  */
-extern struct group *fgetgrent __P ((FILE * __stream));
+extern struct group *fgetgrent __P ((FILE *__stream));
 #endif
 
 /* Search for an entry with a matching group ID.  */
@@ -96,28 +96,28 @@ extern struct group *getgrnam __P ((__const char *__name));
    may change in later versions of this library.  */
 
 #if defined(__USE_SVID) || defined(__USE_MISC) || defined (__USE_BSD)
-extern struct group *getgrent_r __P ((struct group *__resultbuf,
-                                     char *buffer, int __buflen));
+extern int getgrent_r __P ((struct group *__resultbuf, char *buffer,
+                           size_t __buflen, struct group **__result));
 #endif
 
 /* Search for an entry with a matching group ID.  */
-extern struct group *getgrgid_r __P ((__gid_t __gid,
-                                     struct group *__resultbuf,
-                                     char *buffer, int __buflen));
+extern int getgrgid_r __P ((__gid_t __gid, struct group *__resultbuf,
+                           char *buffer, size_t __buflen,
+                           struct group **__result));
 
 /* Search for an entry with a matching group name.  */
-extern struct group *getgrnam_r __P ((__const char *__name,
-                                     struct group *__resultbuf,
-                                     char *buffer, int __buflen));
+extern int getgrnam_r __P ((__const char *__name, struct group *__resultbuf,
+                           char *buffer, size_t __buflen,
+                           struct group **__result));
 
 #ifdef __USE_SVID
 /* Read a group entry from STREAM.  */
-extern struct group *__fgetgrent_r __P ((FILE * __stream,
-                                        struct group *__resultbuf,
-                                        char *buffer, int __buflen));
-extern struct group *fgetgrent_r __P ((FILE * __stream,
-                                      struct group *__resultbuf,
-                                      char *buffer, int __buflen));
+extern int __fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
+                              char *buffer, size_t __buflen,
+                              struct group **__result));
+extern int fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
+                            char *buffer, size_t __buflen,
+                            struct group **__result));
 #endif
 
 #endif /* reentrant */
@@ -129,12 +129,12 @@ extern struct group *fgetgrent_r __P ((FILE * __stream,
 #include <stddef.h>
 
 /* Set the group set for the current user to GROUPS (N of them).  */
-extern int setgroups __P ((size_t __n, __const __gid_t * groups));
+extern int setgroups __P ((size_t __n, __const __gid_t *__groups));
 
 /* Initialize the group set for the current user
    by reading the group database and using all groups
    of which USER is a member.  Also include GROUP.  */
-extern int initgroups __P ((__const char *user, __gid_t group));
+extern int initgroups __P ((__const char *__user, __gid_t __group));
 
 #endif /* Use BSD.  */
 
index 3fac6b9..62ba4e4 100644 (file)
@@ -10,7 +10,7 @@ main (int argc, char *argv[])
 {
   uid_t me;
   struct passwd *my_passwd;
-  struct group *my_group;
+  struct group *my_group = NULL;
   char **members;
 
   me = getuid ();
index ff6d539..7288dbe 100644 (file)
@@ -113,7 +113,7 @@ internal_setnetgrent (const char *group)
 
   /* Add the current group to the list of known groups.  */
   new_elem = (struct name_list *) malloc (sizeof (struct name_list));
-  if (new_elem == NULL || (new_elem->name = strdup (group)) == NULL)
+  if (new_elem == NULL || (new_elem->name = __strdup (group)) == NULL)
     {
       if (new_elem != NULL)
        free (new_elem);
@@ -178,7 +178,7 @@ endnetgrent (void)
 
 int
 __getnetgrent_r (char **hostp, char **userp, char **domainp,
-                char *buffer, int buflen)
+                char *buffer, size_t buflen)
 {
   enum nss_status (*fct) (struct __netgrent *, char *, int);
   struct __netgrent result;
@@ -230,7 +230,7 @@ __getnetgrent_r (char **hostp, char **userp, char **domainp,
 
          namep = (struct name_list *) malloc (sizeof (struct name_list));
          if (namep == NULL
-             || (namep->name = strdup (result.val.group)) == NULL)
+             || (namep->name = __strdup (result.val.group)) == NULL)
            {
              /* We are out of memory.  */
              if (namep != NULL)
@@ -315,7 +315,7 @@ innetgr (const char *netgroup, const char *host, const char *user,
                          namep =
                            (struct name_list *) malloc (sizeof (*namep));
                          if (namep == NULL
-                             || ((namep->name = strdup (entry.val.group))
+                             || ((namep->name = __strdup (entry.val.group))
                                  == NULL))
                            {
                              /* Out of memory, simply return.  */
index ca92ec3..3143325 100644 (file)
@@ -20,15 +20,12 @@ Boston, MA 02111-1307, USA.  */
 
 /* We need to have the error status variable of the resolver
    accessible in the libc.  */
-int __h_errno = 0;
-strong_alias (__h_errno, h_errno)
+int h_errno = 0;
 
 /* When threaded, h_errno may be a per-process variable.  */
-#ifdef __USE_REENTRANT
 int *
 weak_const_function
 __h_errno_location (void)
 {
-  return &__h_errno;
+  return &h_errno;
 }
-#endif