mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-05 21:00:05 +00:00
update from main archive 961009
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.
This commit is contained in:
parent
11336c165c
commit
b33f91e91d
22
ChangeLog
22
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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -658,8 +658,11 @@ strftime (s, maxsize, format, tp)
|
||||
|
||||
case 's': /* GNU extension. */
|
||||
{
|
||||
struct tm ltm = *tp;
|
||||
time_t t = mktime (<m);
|
||||
struct tm ltm;
|
||||
time_t t;
|
||||
|
||||
ltm = *tp;
|
||||
t = mktime (<m);
|
||||
|
||||
/* 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 (<m);
|
||||
struct tm ltm;
|
||||
time_t lt;
|
||||
|
||||
ltm = *tp;
|
||||
lt = mktime (<m);
|
||||
|
||||
if (lt == (time_t) -1)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user