update from main archive 961009 cvs/libc-961010 cvs/libc-961011
authorUlrich Drepper <drepper@redhat.com>
Thu, 10 Oct 1996 01:07:18 +0000 (01:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 10 Oct 1996 01:07:18 +0000 (01:07 +0000)
Wed Oct  9 00:24:52 1996  Jim Meyering  <meyering@asic.sc.ti.com>

* time/strftime.c: Allow old K&R compilers compile this file.

Wed Oct  9 12:03:56 1996  Ulrich Drepper  <drepper@cygnus.com>

* posix/execlp.c: Add first argument parameter to be compliant
with POSIX.  Rearrange body to start vararg counter after
this new argument.

Wed Oct  9 04:34:50 1996  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/sys/procfs.h: Rewrite.  We cannot use
simply a wrapper around the <linux.elfcore.h> file since the
kernel header is not clean enough.  We provide the definitions
in this file instead.

Wed Oct  9 01:43:18 1996  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/gethostid.c (sethostid): Avoid
get?id calls by using __libc_enable_secure.

ChangeLog
posix/execlp.c
sunrpc/auth_unix.c
sysdeps/unix/sysv/linux/gethostid.c
sysdeps/unix/sysv/linux/sys/procfs.h
time/strftime.c

index 8d3b462..fdd2883 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+Wed Oct  9 00:24:52 1996  Jim Meyering  <meyering@asic.sc.ti.com>
+
+       * time/strftime.c: Allow old K&R compilers compile this file.
+
+Wed Oct  9 12:03:56 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * posix/execlp.c: Add first argument parameter to be compliant
+       with POSIX.  Rearrange body to start vararg counter after
+       this new argument.
+
+Wed Oct  9 04:34:50 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/sys/procfs.h: Rewrite.  We cannot use
+       simply a wrapper around the <linux.elfcore.h> file since the
+       kernel header is not clean enough.  We provide the definitions
+       in this file instead.
+
+Wed Oct  9 01:43:18 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Avoid
+       get?id calls by using __libc_enable_secure.
+
 Wed Oct  9 00:30:33 1996  Ulrich Drepper  <drepper@cygnus.com>
 
        * inet/getnetgrent_r.c: Correct netgroup implementation.  A
index af09dac..f442c05 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1993, 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
@@ -16,7 +16,6 @@ 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.  */
 
-#include <ansidecl.h>
 #include <unistd.h>
 #include <stdarg.h>
 #include <stddef.h>
@@ -25,20 +24,19 @@ Cambridge, MA 02139, USA.  */
    it contains no slashes, with all arguments after FILE until a
    NULL pointer and environment from `environ'.  */
 int
-DEFUN(execlp, (file), CONST char *file DOTS)
+execlp (const char *file, const char *arg, ...)
 {
-  CONST char *argv[1024];
-  register unsigned int i;
+  const char *argv[1024];
+  unsigned int i;
   va_list args;
 
-  va_start (args, file);
+  va_start (args, arg);
 
-  i = 0;
-  do
-    argv[i] = va_arg (args, CONST char *);
-  while (argv[i++] != NULL);
+  argv[i = 0] = arg;
+  while (argv[i++] != NULL)
+    argv[i] = va_arg (args, const char *);
 
   va_end (args);
 
-  return execvp (file, (char *CONST *) argv);
+  return execvp (file, (char *const *) argv);
 }
index 9062e79..f0e6686 100644 (file)
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)auth_unix.c 1.19 87/08/11 Copyr 1984 Sun Micro";
 #include <limits.h>
 #include <stdio.h>
 #include <unistd.h>
-#include <sys/params.h>
+#include <sys/param.h>
 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
@@ -174,7 +174,7 @@ authunix_create_default()
        char machname[MAX_MACHINE_NAME + 1];
        register int uid;
        register int gid;
-       int max_nr_groups = sysconf (_SC_NGROUP_MAX);
+       int max_nr_groups = sysconf (_SC_NGROUPS_MAX);
        gid_t gids[max_nr_groups];
 
        if (gethostname(machname, MAX_MACHINE_NAME) == -1)
index a1d141b..ca2669d 100644 (file)
@@ -30,7 +30,7 @@ sethostid (id)
   ssize_t written;
 
   /* Test for appropriate rights to set host ID.  */
-  if (geteuid () || getuid ())
+  if (__libc_enable_secure)
     {
       __set_errno (EPERM);
       return -1;
index 9c1079d..d4a3898 100644 (file)
@@ -1 +1,105 @@
-#include <linux/elfcore.h>
+/* Copyright (C) 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 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., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef _SYS_PROCFS_H
+
+#define _SYS_PROCFS_H  1
+#include <features.h>
+
+/* This is somehow modelled after the file of the same name on SysVr4
+   systems.  It provides a definition of the core file format for ELF
+   used on Linux.  */
+
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <asm/elf.h>
+
+struct elf_siginfo
+{
+  int si_signo;                                /* signal number */
+  int si_code;                         /* extra code */
+  int si_errno;                                /* errno */
+};
+
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
+
+/* Definitions to generate Intel SVR4-like core files.  These mostly
+   have the same names as the SVR4 types with "elf_" tacked on the
+   front to prevent clashes with linux definitions, and the typedef
+   forms have been avoided.  This is mostly like the SVR4 structure,
+   but more Linuxy, with things that Linux does not support and which
+   gdb doesn't really use excluded.  Fields present but not used are
+   marked with "XXX".  */
+struct elf_prstatus
+{
+#if 0
+  long pr_flags;                       /* XXX Process flags */
+  short pr_why;                                /* XXX Reason for process halt */
+  short pr_what;                       /* XXX More detailed reason */
+#endif
+  struct elf_siginfo pr_info;          /* Info associated with signal */
+  short pr_cursig;                     /* Current signal */
+  sigset_t pr_sigpend;                 /* Set of pending signals */
+  sigset_t pr_sighold;                 /* Set of held signals */
+#if 0
+  struct sigaltstack pr_altstack;      /* Alternate stack info */
+  struct sigaction pr_action;          /* Signal action for current sig */
+#endif
+  pid_t pr_pid;
+  pid_t pr_ppid;
+  pid_t pr_pgrp;
+  pid_t pr_sid;
+  struct timeval pr_utime;             /* User time */
+  struct timeval pr_stime;             /* System time */
+  struct timeval pr_cutime;            /* Cumulative user time */
+  struct timeval pr_cstime;            /* Cumulative system time */
+#if 0
+  long pr_instr;                       /* Current instruction */
+#endif
+  elf_gregset_t pr_reg;                        /* GP registers */
+  int pr_fpvalid;                      /* True if math copro being used.  */
+};
+
+
+#define ELF_PRARGSZ     (80)    /* Number of chars for args */
+
+struct elf_prpsinfo
+{
+  char pr_state;                       /* numeric process state */
+  char pr_sname;                       /* char for pr_state */
+  char pr_zomb;                                /* zombie */
+  char pr_nice;                                /* nice val */
+  unsigned long pr_flag;               /* flags */
+  uid_t pr_uid;
+  gid_t pr_gid;
+  pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
+  /* Lots missing */
+  char pr_fname[16];                   /* filename of executable */
+  char pr_psargs[ELF_PRARGSZ];         /* initial part of arg list */
+};
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+
+#endif /* sys/procfs.h */
index 36088d0..4014826 100644 (file)
@@ -658,8 +658,11 @@ strftime (s, maxsize, format, tp)
 
        case 's':               /* GNU extension.  */
          {
-           struct tm ltm = *tp;
-           time_t t = mktime (&ltm);
+           struct tm ltm;
+           time_t t;
+
+           ltm = *tp;
+           t = mktime (&ltm);
 
            /* Generate string value for T using time_t arithmetic;
               this works even if sizeof (long) < sizeof (time_t).  */
@@ -818,8 +821,11 @@ strftime (s, maxsize, format, tp)
            diff = tp->tm_gmtoff;
 #else
            struct tm gtm;
-           struct tm ltm = *tp;
-           time_t lt = mktime (&ltm);
+           struct tm ltm;
+           time_t lt;
+
+           ltm = *tp;
+           lt = mktime (&ltm);
 
            if (lt == (time_t) -1)
              {