Update.
* inet/rcmd.c: Use *stat64 instead of *stat internally. * inet/ruserpass.c: Likewise. * intl/loadmsgcat.c: Likewise. * io/getdirname.c: Likewise. * locale/loadlocale.c: Likewise. * misc/getusershell.c: Likewise. * stdlib/canonicalize.c: Likewise. * sysdeps/posix/euidaccess.c: Likewise. * sysdeps/posix/isfdtype.c: Likewise. * sysdeps/posix/posix_fallocate.c: Likewise. * sysdeps/posix/tempname.c: Likewise. * sysdeps/unix/grantpt.c: Likewise. * sysdeps/unix/opendir.c: Likewise. * sysdeps/unix/sysv/linux/fstatvfs.c: Likewise. * sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise. * sysdeps/unix/sysv/linux/ptsname.c: Likewise. * sysdeps/unix/sysv/linux/statvfs.c: Likewise. * sysdeps/unix/sysv/linux/ttyname.c: Likewise. * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise. * sysvipc/ftok.c: Likewise. * time/getdate.c: Likewise. * time/getdate.c: Add extra access test. 2000-08-31 Ulrich Drepper <drepper@redhat.com>
This commit is contained in:
parent
3d784d8300
commit
8edf6e0d7e
26
ChangeLog
26
ChangeLog
@ -1,3 +1,29 @@
|
||||
2000-08-31 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* inet/rcmd.c: Use *stat64 instead of *stat internally.
|
||||
* inet/ruserpass.c: Likewise.
|
||||
* intl/loadmsgcat.c: Likewise.
|
||||
* io/getdirname.c: Likewise.
|
||||
* locale/loadlocale.c: Likewise.
|
||||
* misc/getusershell.c: Likewise.
|
||||
* stdlib/canonicalize.c: Likewise.
|
||||
* sysdeps/posix/euidaccess.c: Likewise.
|
||||
* sysdeps/posix/isfdtype.c: Likewise.
|
||||
* sysdeps/posix/posix_fallocate.c: Likewise.
|
||||
* sysdeps/posix/tempname.c: Likewise.
|
||||
* sysdeps/unix/grantpt.c: Likewise.
|
||||
* sysdeps/unix/opendir.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/fstatvfs.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/ptsname.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/statvfs.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/ttyname.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
|
||||
* sysvipc/ftok.c: Likewise.
|
||||
* time/getdate.c: Likewise.
|
||||
|
||||
* time/getdate.c: Add extra access test.
|
||||
|
||||
2000-08-31 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* version.h (VERSION): Bump to 2.1.93.
|
||||
|
@ -401,7 +401,7 @@ ruserok(rhost, superuser, ruser, luser)
|
||||
static FILE *
|
||||
iruserfopen (const char *file, uid_t okuser)
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
char *cp = NULL;
|
||||
FILE *res = NULL;
|
||||
|
||||
@ -409,7 +409,7 @@ iruserfopen (const char *file, uid_t okuser)
|
||||
root, if writeable by anyone but the owner, or if hardlinked
|
||||
anywhere, quit. */
|
||||
cp = NULL;
|
||||
if (__lxstat (_STAT_VER, file, &st))
|
||||
if (__lxstat64 (_STAT_VER, file, &st))
|
||||
cp = _("lstat failed");
|
||||
else if (!S_ISREG (st.st_mode))
|
||||
cp = _("not regular file");
|
||||
@ -418,7 +418,7 @@ iruserfopen (const char *file, uid_t okuser)
|
||||
res = fopen (file, "r");
|
||||
if (!res)
|
||||
cp = _("cannot open");
|
||||
else if (__fxstat (_STAT_VER, fileno (res), &st) < 0)
|
||||
else if (__fxstat64 (_STAT_VER, fileno (res), &st) < 0)
|
||||
cp = _("fstat failed");
|
||||
else if (st.st_uid && st.st_uid != okuser)
|
||||
cp = _("bad owner");
|
||||
|
@ -99,7 +99,7 @@ ruserpass(host, aname, apass)
|
||||
char *hdir, *buf, *tmp;
|
||||
char myname[1024], *mydomain;
|
||||
int t, usedefault = 0;
|
||||
struct stat stb;
|
||||
struct stat64 stb;
|
||||
|
||||
hdir = __secure_getenv("HOME");
|
||||
if (hdir == NULL) {
|
||||
@ -176,7 +176,7 @@ next:
|
||||
break;
|
||||
case PASSWD:
|
||||
if (strcmp(*aname, "anonymous") &&
|
||||
fstat(fileno(cfile), &stb) >= 0 &&
|
||||
fstat64(fileno(cfile), &stb) >= 0 &&
|
||||
(stb.st_mode & 077) != 0) {
|
||||
warnx(_("Error: .netrc file is readable by others."));
|
||||
warnx(_("Remove password or make file unreadable by others."));
|
||||
@ -195,7 +195,7 @@ next:
|
||||
break;
|
||||
case ACCOUNT:
|
||||
#if 0
|
||||
if (fstat(fileno(cfile), &stb) >= 0
|
||||
if (fstat64(fileno(cfile), &stb) >= 0
|
||||
&& (stb.st_mode & 077) != 0) {
|
||||
warnx("Error: .netrc file is readable by others.");
|
||||
warnx("Remove account or make file unreadable by others.");
|
||||
|
@ -121,7 +121,7 @@ _nl_load_domain (domain_file)
|
||||
{
|
||||
int fd;
|
||||
size_t size;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
struct mo_file_header *data = (struct mo_file_header *) -1;
|
||||
int use_mmap = 0;
|
||||
struct loaded_domain *domain;
|
||||
@ -143,7 +143,7 @@ _nl_load_domain (domain_file)
|
||||
return;
|
||||
|
||||
/* We must know about the size of the file. */
|
||||
if (__builtin_expect (fstat (fd, &st) != 0, 0)
|
||||
if (__builtin_expect (fstat64 (fd, &st) != 0, 0)
|
||||
|| __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
|
||||
|| __builtin_expect (size < sizeof (struct mo_file_header), 0))
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1997, 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992, 1997, 1998, 2000 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
|
||||
@ -29,14 +29,14 @@ char *
|
||||
get_current_dir_name (void)
|
||||
{
|
||||
char *pwd;
|
||||
struct stat dotstat, pwdstat;
|
||||
struct stat64 dotstat, pwdstat;
|
||||
|
||||
pwd = getenv ("PWD");
|
||||
if (pwd != NULL &&
|
||||
stat (".", &dotstat) == 0 &&
|
||||
stat (pwd, &pwdstat) == 0 &&
|
||||
pwdstat.st_dev == dotstat.st_dev &&
|
||||
pwdstat.st_ino == dotstat.st_ino)
|
||||
if (pwd != NULL
|
||||
&& stat64 (".", &dotstat) == 0
|
||||
&& stat64 (pwd, &pwdstat) == 0
|
||||
&& pwdstat.st_dev == dotstat.st_dev
|
||||
&& pwdstat.st_ino == dotstat.st_ino)
|
||||
/* The PWD value is correct. Use it. */
|
||||
return __strdup (pwd);
|
||||
|
||||
|
@ -69,7 +69,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
|
||||
unsigned int nstrings;
|
||||
unsigned int strindex[0];
|
||||
} *filedata;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
struct locale_data *newdata;
|
||||
int save_err;
|
||||
int mmaped = 1;
|
||||
@ -83,7 +83,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
|
||||
/* Cannot open the file. */
|
||||
return;
|
||||
|
||||
if (__builtin_expect (__fstat (fd, &st), 0) < 0)
|
||||
if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0)
|
||||
goto puntfd;
|
||||
if (__builtin_expect (S_ISDIR (st.st_mode), 0))
|
||||
{
|
||||
@ -106,7 +106,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
|
||||
if (__builtin_expect (fd, 0) < 0)
|
||||
return;
|
||||
|
||||
if (__builtin_expect (__fstat (fd, &st), 0) < 0)
|
||||
if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0)
|
||||
goto puntfd;
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ initshells()
|
||||
{
|
||||
register char **sp, *cp;
|
||||
register FILE *fp;
|
||||
struct stat statb;
|
||||
struct stat64 statb;
|
||||
int flen;
|
||||
|
||||
if (shells != NULL)
|
||||
@ -102,7 +102,7 @@ initshells()
|
||||
strings = NULL;
|
||||
if ((fp = fopen(_PATH_SHELLS, "r")) == NULL)
|
||||
return (okshells);
|
||||
if (fstat(fileno(fp), &statb) == -1) {
|
||||
if (fstat64(fileno(fp), &statb) == -1) {
|
||||
(void)fclose(fp);
|
||||
return (okshells);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return the canonical absolute name of a given file.
|
||||
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 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
|
||||
@ -91,7 +91,7 @@ canonicalize (const char *name, char *resolved)
|
||||
|
||||
for (start = end = name; *start; start = end)
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
int n;
|
||||
|
||||
/* Skip sequence of multiple path-separators. */
|
||||
@ -147,7 +147,7 @@ canonicalize (const char *name, char *resolved)
|
||||
dest = __mempcpy (dest, start, end - start);
|
||||
*dest = '\0';
|
||||
|
||||
if (__lxstat (_STAT_VER, rpath, &st) < 0)
|
||||
if (__lxstat64 (_STAT_VER, rpath, &st) < 0)
|
||||
goto error;
|
||||
|
||||
if (S_ISLNK (st.st_mode))
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Check if effective user id can access file
|
||||
Copyright (C) 1990, 91, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990,91,95,96,97,98,99,2000 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
|
||||
@ -133,7 +133,7 @@ euidaccess (path, mode)
|
||||
const char *path;
|
||||
int mode;
|
||||
{
|
||||
struct stat stats;
|
||||
struct stat64 stats;
|
||||
int granted;
|
||||
|
||||
#ifdef _LIBC
|
||||
@ -155,7 +155,7 @@ euidaccess (path, mode)
|
||||
return access (path, mode);
|
||||
#endif
|
||||
|
||||
if (stat (path, &stats))
|
||||
if (stat64 (path, &stats))
|
||||
return -1;
|
||||
|
||||
mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Determine whether descriptor has given property.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2000 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
|
||||
@ -25,12 +25,12 @@
|
||||
int
|
||||
isfdtype (int fildes, int fdtype)
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
int result;
|
||||
|
||||
{
|
||||
int save_error = errno;
|
||||
result = fstat (fildes, &st);
|
||||
result = fstat64 (fildes, &st);
|
||||
__set_errno (save_error);
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
int
|
||||
posix_fallocate (int fd, __off_t offset, size_t len)
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
struct statfs f;
|
||||
size_t step;
|
||||
|
||||
@ -40,7 +40,7 @@ posix_fallocate (int fd, __off_t offset, size_t len)
|
||||
|
||||
/* First thing we have to make sure is that this is really a regular
|
||||
file. */
|
||||
if (__fxstat (_STAT_VER, fd, &st) != 0)
|
||||
if (__fxstat64 (_STAT_VER, fd, &st) != 0)
|
||||
return EBADF;
|
||||
if (S_ISFIFO (st.st_mode))
|
||||
return ESPIPE;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991-1999, 2000 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
|
||||
@ -33,8 +33,8 @@
|
||||
static int
|
||||
direxists (const char *dir)
|
||||
{
|
||||
struct stat buf;
|
||||
return __xstat (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode);
|
||||
struct stat64 buf;
|
||||
return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode);
|
||||
}
|
||||
|
||||
/* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is
|
||||
@ -127,7 +127,7 @@ __gen_tempname (char *tmpl, int kind)
|
||||
struct timeval tv;
|
||||
int count, fd = -1;
|
||||
int save_errno = errno;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
|
||||
len = strlen (tmpl);
|
||||
if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
|
||||
@ -179,7 +179,7 @@ __gen_tempname (char *tmpl, int kind)
|
||||
succeeds if __xstat fails because the name does not exist.
|
||||
Note the continue to bypass the common logic at the bottom
|
||||
of the loop. */
|
||||
if (__xstat (_STAT_VER, tmpl, &st) < 0)
|
||||
if (__xstat64 (_STAT_VER, tmpl, &st) < 0)
|
||||
{
|
||||
if (errno == ENOENT)
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ grantpt (int fd)
|
||||
char _buf[512];
|
||||
#endif
|
||||
char *buf = _buf;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
char *grtmpbuf;
|
||||
struct group grbuf;
|
||||
size_t grbuflen = __sysconf (_SC_GETGR_R_SIZE_MAX);
|
||||
@ -109,7 +109,7 @@ grantpt (int fd)
|
||||
if (pts_name (fd, &buf, sizeof (_buf)))
|
||||
return -1;
|
||||
|
||||
if (__xstat (_STAT_VER, buf, &st) < 0)
|
||||
if (__xstat64 (_STAT_VER, buf, &st) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* Make sure that we own the device. */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991,92,93,94,95,96,98,2000 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
|
||||
@ -71,7 +71,7 @@ DIR *
|
||||
__opendir (const char *name)
|
||||
{
|
||||
DIR *dirp;
|
||||
struct stat statbuf;
|
||||
struct stat64 statbuf;
|
||||
int fd;
|
||||
size_t allocation;
|
||||
int save_errno;
|
||||
@ -96,7 +96,7 @@ __opendir (const char *name)
|
||||
/* We first have to check whether the name is for a directory. We
|
||||
cannot do this after the open() call since the open/close operation
|
||||
performed on, say, a tape device might have undesirable effects. */
|
||||
if (__xstat (_STAT_VER, name, &statbuf) < 0)
|
||||
if (__xstat64 (_STAT_VER, name, &statbuf) < 0)
|
||||
return NULL;
|
||||
if (! S_ISDIR (statbuf.st_mode))
|
||||
{
|
||||
@ -111,7 +111,7 @@ __opendir (const char *name)
|
||||
|
||||
/* Now make sure this really is a directory and nothing changed since
|
||||
the `stat' call. */
|
||||
if (__fstat (fd, &statbuf) < 0)
|
||||
if (__fxstat64 (_STAT_VER, fd, &statbuf) < 0)
|
||||
goto lose;
|
||||
if (! S_ISDIR (statbuf.st_mode))
|
||||
{
|
||||
|
@ -31,13 +31,13 @@ int
|
||||
fstatvfs (int fd, struct statvfs *buf)
|
||||
{
|
||||
struct statfs fsbuf;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
|
||||
/* Get as much information as possible from the system. */
|
||||
if (__fstatfs (fd, &fsbuf) < 0)
|
||||
return -1;
|
||||
|
||||
#define STAT(st) fstat (fd, st)
|
||||
#define STAT(st) fstat64 (fd, st)
|
||||
#include "internal_statvfs.c"
|
||||
|
||||
/* We signal success if the statfs call succeeded. */
|
||||
|
@ -56,10 +56,10 @@
|
||||
|
||||
while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
|
||||
{
|
||||
struct stat fsst;
|
||||
struct stat64 fsst;
|
||||
|
||||
/* Find out about the device the current entry is for. */
|
||||
if (stat (mntbuf.mnt_dir, &fsst) >= 0
|
||||
if (stat64 (mntbuf.mnt_dir, &fsst) >= 0
|
||||
&& st.st_dev == fsst.st_dev)
|
||||
{
|
||||
/* Bingo, we found the entry for the device FD is on.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
terminal devices. As of Linux 2.1.115 these are no longer
|
||||
supported. They have been replaced by major numbers 2 (masters)
|
||||
and 3 (slaves). */
|
||||
|
||||
|
||||
/* Directory where we can find the slave pty nodes. */
|
||||
#define _PATH_DEVPTS "/dev/pts/"
|
||||
|
||||
@ -74,7 +74,7 @@ int
|
||||
__ptsname_r (int fd, char *buf, size_t buflen)
|
||||
{
|
||||
int save_errno = errno;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
int ptyno;
|
||||
|
||||
if (buf == NULL)
|
||||
@ -121,7 +121,7 @@ __ptsname_r (int fd, char *buf, size_t buflen)
|
||||
return ERANGE;
|
||||
}
|
||||
|
||||
if (__fstat (fd, &st) < 0)
|
||||
if (__fxstat64 (_STAT_VER, fd, &st) < 0)
|
||||
return errno;
|
||||
|
||||
/* Check if FD really is a master pseudo terminal. */
|
||||
@ -149,7 +149,7 @@ __ptsname_r (int fd, char *buf, size_t buflen)
|
||||
p[2] = '\0';
|
||||
}
|
||||
|
||||
if (__xstat (_STAT_VER, buf, &st) < 0)
|
||||
if (__xstat64 (_STAT_VER, buf, &st) < 0)
|
||||
return errno;
|
||||
|
||||
/* Check if the name we're about to return really corresponds to a
|
||||
|
@ -31,13 +31,13 @@ int
|
||||
statvfs (const char *file, struct statvfs *buf)
|
||||
{
|
||||
struct statfs fsbuf;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
|
||||
/* Get as much information as possible from the system. */
|
||||
if (__statfs (file, &fsbuf) < 0)
|
||||
return -1;
|
||||
|
||||
#define STAT(st) stat (file, st)
|
||||
#define STAT(st) stat64 (file, st)
|
||||
#include "internal_statvfs.c"
|
||||
|
||||
/* We signal success if the statfs call succeeded. */
|
||||
|
@ -31,7 +31,7 @@
|
||||
char *__ttyname;
|
||||
|
||||
static char *getttyname (const char *dev, dev_t mydev,
|
||||
ino_t myino, int save, int *dostat)
|
||||
ino64_t myino, int save, int *dostat)
|
||||
internal_function;
|
||||
|
||||
|
||||
@ -39,10 +39,10 @@ static char *getttyname_name;
|
||||
|
||||
static char *
|
||||
internal_function
|
||||
getttyname (const char *dev, dev_t mydev, ino_t myino, int save, int *dostat)
|
||||
getttyname (const char *dev, dev_t mydev, ino64_t myino, int save, int *dostat)
|
||||
{
|
||||
static size_t namelen;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
DIR *dirstream;
|
||||
struct dirent *d;
|
||||
size_t devlen = strlen (dev) + 1;
|
||||
@ -76,11 +76,11 @@ getttyname (const char *dev, dev_t mydev, ino_t myino, int save, int *dostat)
|
||||
*((char *) __mempcpy (getttyname_name, dev, devlen - 1)) = '/';
|
||||
}
|
||||
memcpy (&getttyname_name[devlen], d->d_name, dlen);
|
||||
if (__xstat (_STAT_VER, getttyname_name, &st) == 0
|
||||
if (__xstat64 (_STAT_VER, getttyname_name, &st) == 0
|
||||
#ifdef _STATBUF_ST_RDEV
|
||||
&& S_ISCHR (st.st_mode) && st.st_rdev == mydev
|
||||
#else
|
||||
&& (ino_t) d->d_fileno == myino && st.st_dev == mydev
|
||||
&& (ino64_t) d->d_fileno == myino && st.st_dev == mydev
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@ -108,7 +108,7 @@ ttyname (int fd)
|
||||
{
|
||||
static size_t buflen;
|
||||
char procname[30];
|
||||
struct stat st, st1;
|
||||
struct stat64 st, st1;
|
||||
int dostat = 0;
|
||||
char *name;
|
||||
int save = errno;
|
||||
@ -143,10 +143,10 @@ ttyname (int fd)
|
||||
return ttyname_buf;
|
||||
}
|
||||
|
||||
if (__fxstat (_STAT_VER, fd, &st) < 0)
|
||||
if (__fxstat64 (_STAT_VER, fd, &st) < 0)
|
||||
return NULL;
|
||||
|
||||
if (__xstat (_STAT_VER, "/dev/pts", &st1) == 0 && S_ISDIR (st1.st_mode))
|
||||
if (__xstat64 (_STAT_VER, "/dev/pts", &st1) == 0 && S_ISDIR (st1.st_mode))
|
||||
{
|
||||
#ifdef _STATBUF_ST_RDEV
|
||||
name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat);
|
||||
|
@ -29,15 +29,15 @@
|
||||
#include <stdio-common/_itoa.h>
|
||||
|
||||
static int getttyname_r (char *buf, size_t buflen,
|
||||
dev_t mydev, ino_t myino, int save,
|
||||
dev_t mydev, ino64_t myino, int save,
|
||||
int *dostat) internal_function;
|
||||
|
||||
static int
|
||||
internal_function
|
||||
getttyname_r (char *buf, size_t buflen, dev_t mydev, ino_t myino,
|
||||
getttyname_r (char *buf, size_t buflen, dev_t mydev, ino64_t myino,
|
||||
int save, int *dostat)
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
DIR *dirstream;
|
||||
struct dirent *d;
|
||||
size_t devlen = strlen (buf);
|
||||
@ -69,11 +69,11 @@ getttyname_r (char *buf, size_t buflen, dev_t mydev, ino_t myino,
|
||||
cp = __stpncpy (buf + devlen, d->d_name, needed);
|
||||
cp[0] = '\0';
|
||||
|
||||
if (__xstat (_STAT_VER, buf, &st) == 0
|
||||
if (__xstat64 (_STAT_VER, buf, &st) == 0
|
||||
#ifdef _STATBUF_ST_RDEV
|
||||
&& S_ISCHR (st.st_mode) && st.st_rdev == mydev
|
||||
#else
|
||||
&& (ino_t) d->d_fileno == myino && st.st_dev == mydev
|
||||
&& (ino64_t) d->d_fileno == myino && st.st_dev == mydev
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@ -96,7 +96,7 @@ int
|
||||
__ttyname_r (int fd, char *buf, size_t buflen)
|
||||
{
|
||||
char procname[30];
|
||||
struct stat st, st1;
|
||||
struct stat64 st, st1;
|
||||
int dostat = 0;
|
||||
int save = errno;
|
||||
int ret;
|
||||
@ -136,14 +136,14 @@ __ttyname_r (int fd, char *buf, size_t buflen)
|
||||
return ERANGE;
|
||||
}
|
||||
|
||||
if (__fxstat (_STAT_VER, fd, &st) < 0)
|
||||
if (__fxstat64 (_STAT_VER, fd, &st) < 0)
|
||||
return errno;
|
||||
|
||||
/* Prepare the result buffer. */
|
||||
memcpy (buf, "/dev/pts/", sizeof ("/dev/pts/"));
|
||||
buflen -= sizeof ("/dev/pts/") - 1;
|
||||
|
||||
if (__xstat (_STAT_VER, buf, &st1) == 0 && S_ISDIR (st1.st_mode))
|
||||
if (__xstat64 (_STAT_VER, buf, &st1) == 0 && S_ISDIR (st1.st_mode))
|
||||
{
|
||||
#ifdef _STATBUF_ST_RDEV
|
||||
ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save,
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||
|
||||
@ -25,10 +25,10 @@ ftok (pathname, proj_id)
|
||||
const char *pathname;
|
||||
int proj_id;
|
||||
{
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
key_t key;
|
||||
|
||||
if (__xstat (_STAT_VER, pathname, &st) < 0)
|
||||
if (__xstat64 (_STAT_VER, pathname, &st) < 0)
|
||||
return (key_t) -1;
|
||||
|
||||
key = ((st.st_ino & 0xffff) | ((st.st_dev & 0xff) << 16)
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define TM_YEAR_BASE 1900
|
||||
@ -110,19 +111,22 @@ __getdate_r (const char *string, struct tm *tp)
|
||||
char *result = NULL;
|
||||
time_t timer;
|
||||
struct tm tm;
|
||||
struct stat st;
|
||||
struct stat64 st;
|
||||
int mday_ok = 0;
|
||||
|
||||
datemsk = getenv ("DATEMSK");
|
||||
if (datemsk == NULL || *datemsk == '\0')
|
||||
return 1;
|
||||
|
||||
if (stat (datemsk, &st) < 0)
|
||||
if (stat64 (datemsk, &st) < 0)
|
||||
return 3;
|
||||
|
||||
if (!S_ISREG (st.st_mode))
|
||||
return 4;
|
||||
|
||||
if (__access (datemsk, R_OK) < 0)
|
||||
return 2;
|
||||
|
||||
/* Open the template file. */
|
||||
fp = fopen (datemsk, "r");
|
||||
if (fp == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user