* 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:
Ulrich Drepper 2000-09-01 02:26:05 +00:00
parent 3d784d8300
commit 8edf6e0d7e
22 changed files with 104 additions and 74 deletions

View File

@ -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> 2000-08-31 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.1.93. * version.h (VERSION): Bump to 2.1.93.

View File

@ -401,7 +401,7 @@ ruserok(rhost, superuser, ruser, luser)
static FILE * static FILE *
iruserfopen (const char *file, uid_t okuser) iruserfopen (const char *file, uid_t okuser)
{ {
struct stat st; struct stat64 st;
char *cp = NULL; char *cp = NULL;
FILE *res = 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 root, if writeable by anyone but the owner, or if hardlinked
anywhere, quit. */ anywhere, quit. */
cp = NULL; cp = NULL;
if (__lxstat (_STAT_VER, file, &st)) if (__lxstat64 (_STAT_VER, file, &st))
cp = _("lstat failed"); cp = _("lstat failed");
else if (!S_ISREG (st.st_mode)) else if (!S_ISREG (st.st_mode))
cp = _("not regular file"); cp = _("not regular file");
@ -418,7 +418,7 @@ iruserfopen (const char *file, uid_t okuser)
res = fopen (file, "r"); res = fopen (file, "r");
if (!res) if (!res)
cp = _("cannot open"); cp = _("cannot open");
else if (__fxstat (_STAT_VER, fileno (res), &st) < 0) else if (__fxstat64 (_STAT_VER, fileno (res), &st) < 0)
cp = _("fstat failed"); cp = _("fstat failed");
else if (st.st_uid && st.st_uid != okuser) else if (st.st_uid && st.st_uid != okuser)
cp = _("bad owner"); cp = _("bad owner");

View File

@ -99,7 +99,7 @@ ruserpass(host, aname, apass)
char *hdir, *buf, *tmp; char *hdir, *buf, *tmp;
char myname[1024], *mydomain; char myname[1024], *mydomain;
int t, usedefault = 0; int t, usedefault = 0;
struct stat stb; struct stat64 stb;
hdir = __secure_getenv("HOME"); hdir = __secure_getenv("HOME");
if (hdir == NULL) { if (hdir == NULL) {
@ -176,7 +176,7 @@ next:
break; break;
case PASSWD: case PASSWD:
if (strcmp(*aname, "anonymous") && if (strcmp(*aname, "anonymous") &&
fstat(fileno(cfile), &stb) >= 0 && fstat64(fileno(cfile), &stb) >= 0 &&
(stb.st_mode & 077) != 0) { (stb.st_mode & 077) != 0) {
warnx(_("Error: .netrc file is readable by others.")); warnx(_("Error: .netrc file is readable by others."));
warnx(_("Remove password or make file unreadable by others.")); warnx(_("Remove password or make file unreadable by others."));
@ -195,7 +195,7 @@ next:
break; break;
case ACCOUNT: case ACCOUNT:
#if 0 #if 0
if (fstat(fileno(cfile), &stb) >= 0 if (fstat64(fileno(cfile), &stb) >= 0
&& (stb.st_mode & 077) != 0) { && (stb.st_mode & 077) != 0) {
warnx("Error: .netrc file is readable by others."); warnx("Error: .netrc file is readable by others.");
warnx("Remove account or make file unreadable by others."); warnx("Remove account or make file unreadable by others.");

View File

@ -121,7 +121,7 @@ _nl_load_domain (domain_file)
{ {
int fd; int fd;
size_t size; size_t size;
struct stat st; struct stat64 st;
struct mo_file_header *data = (struct mo_file_header *) -1; struct mo_file_header *data = (struct mo_file_header *) -1;
int use_mmap = 0; int use_mmap = 0;
struct loaded_domain *domain; struct loaded_domain *domain;
@ -143,7 +143,7 @@ _nl_load_domain (domain_file)
return; return;
/* We must know about the size of the file. */ /* 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 = (size_t) st.st_size) != st.st_size, 0)
|| __builtin_expect (size < sizeof (struct mo_file_header), 0)) || __builtin_expect (size < sizeof (struct mo_file_header), 0))
{ {

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -29,14 +29,14 @@ char *
get_current_dir_name (void) get_current_dir_name (void)
{ {
char *pwd; char *pwd;
struct stat dotstat, pwdstat; struct stat64 dotstat, pwdstat;
pwd = getenv ("PWD"); pwd = getenv ("PWD");
if (pwd != NULL && if (pwd != NULL
stat (".", &dotstat) == 0 && && stat64 (".", &dotstat) == 0
stat (pwd, &pwdstat) == 0 && && stat64 (pwd, &pwdstat) == 0
pwdstat.st_dev == dotstat.st_dev && && pwdstat.st_dev == dotstat.st_dev
pwdstat.st_ino == dotstat.st_ino) && pwdstat.st_ino == dotstat.st_ino)
/* The PWD value is correct. Use it. */ /* The PWD value is correct. Use it. */
return __strdup (pwd); return __strdup (pwd);

View File

@ -69,7 +69,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
unsigned int nstrings; unsigned int nstrings;
unsigned int strindex[0]; unsigned int strindex[0];
} *filedata; } *filedata;
struct stat st; struct stat64 st;
struct locale_data *newdata; struct locale_data *newdata;
int save_err; int save_err;
int mmaped = 1; int mmaped = 1;
@ -83,7 +83,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
/* Cannot open the file. */ /* Cannot open the file. */
return; return;
if (__builtin_expect (__fstat (fd, &st), 0) < 0) if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0)
goto puntfd; goto puntfd;
if (__builtin_expect (S_ISDIR (st.st_mode), 0)) 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) if (__builtin_expect (fd, 0) < 0)
return; return;
if (__builtin_expect (__fstat (fd, &st), 0) < 0) if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0)
goto puntfd; goto puntfd;
} }

View File

@ -91,7 +91,7 @@ initshells()
{ {
register char **sp, *cp; register char **sp, *cp;
register FILE *fp; register FILE *fp;
struct stat statb; struct stat64 statb;
int flen; int flen;
if (shells != NULL) if (shells != NULL)
@ -102,7 +102,7 @@ initshells()
strings = NULL; strings = NULL;
if ((fp = fopen(_PATH_SHELLS, "r")) == NULL) if ((fp = fopen(_PATH_SHELLS, "r")) == NULL)
return (okshells); return (okshells);
if (fstat(fileno(fp), &statb) == -1) { if (fstat64(fileno(fp), &statb) == -1) {
(void)fclose(fp); (void)fclose(fp);
return (okshells); return (okshells);
} }

View File

@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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) for (start = end = name; *start; start = end)
{ {
struct stat st; struct stat64 st;
int n; int n;
/* Skip sequence of multiple path-separators. */ /* Skip sequence of multiple path-separators. */
@ -147,7 +147,7 @@ canonicalize (const char *name, char *resolved)
dest = __mempcpy (dest, start, end - start); dest = __mempcpy (dest, start, end - start);
*dest = '\0'; *dest = '\0';
if (__lxstat (_STAT_VER, rpath, &st) < 0) if (__lxstat64 (_STAT_VER, rpath, &st) < 0)
goto error; goto error;
if (S_ISLNK (st.st_mode)) if (S_ISLNK (st.st_mode))

View File

@ -1,5 +1,5 @@
/* Check if effective user id can access file /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -133,7 +133,7 @@ euidaccess (path, mode)
const char *path; const char *path;
int mode; int mode;
{ {
struct stat stats; struct stat64 stats;
int granted; int granted;
#ifdef _LIBC #ifdef _LIBC
@ -155,7 +155,7 @@ euidaccess (path, mode)
return access (path, mode); return access (path, mode);
#endif #endif
if (stat (path, &stats)) if (stat64 (path, &stats))
return -1; return -1;
mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */ mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */

View File

@ -1,5 +1,5 @@
/* Determine whether descriptor has given property. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -25,12 +25,12 @@
int int
isfdtype (int fildes, int fdtype) isfdtype (int fildes, int fdtype)
{ {
struct stat st; struct stat64 st;
int result; int result;
{ {
int save_error = errno; int save_error = errno;
result = fstat (fildes, &st); result = fstat64 (fildes, &st);
__set_errno (save_error); __set_errno (save_error);
} }

View File

@ -27,7 +27,7 @@
int int
posix_fallocate (int fd, __off_t offset, size_t len) posix_fallocate (int fd, __off_t offset, size_t len)
{ {
struct stat st; struct stat64 st;
struct statfs f; struct statfs f;
size_t step; 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 /* First thing we have to make sure is that this is really a regular
file. */ file. */
if (__fxstat (_STAT_VER, fd, &st) != 0) if (__fxstat64 (_STAT_VER, fd, &st) != 0)
return EBADF; return EBADF;
if (S_ISFIFO (st.st_mode)) if (S_ISFIFO (st.st_mode))
return ESPIPE; return ESPIPE;

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -33,8 +33,8 @@
static int static int
direxists (const char *dir) direxists (const char *dir)
{ {
struct stat buf; struct stat64 buf;
return __xstat (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode); return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode);
} }
/* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is /* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is
@ -127,7 +127,7 @@ __gen_tempname (char *tmpl, int kind)
struct timeval tv; struct timeval tv;
int count, fd = -1; int count, fd = -1;
int save_errno = errno; int save_errno = errno;
struct stat st; struct stat64 st;
len = strlen (tmpl); len = strlen (tmpl);
if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) 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. succeeds if __xstat fails because the name does not exist.
Note the continue to bypass the common logic at the bottom Note the continue to bypass the common logic at the bottom
of the loop. */ of the loop. */
if (__xstat (_STAT_VER, tmpl, &st) < 0) if (__xstat64 (_STAT_VER, tmpl, &st) < 0)
{ {
if (errno == ENOENT) if (errno == ENOENT)
{ {

View File

@ -97,7 +97,7 @@ grantpt (int fd)
char _buf[512]; char _buf[512];
#endif #endif
char *buf = _buf; char *buf = _buf;
struct stat st; struct stat64 st;
char *grtmpbuf; char *grtmpbuf;
struct group grbuf; struct group grbuf;
size_t grbuflen = __sysconf (_SC_GETGR_R_SIZE_MAX); size_t grbuflen = __sysconf (_SC_GETGR_R_SIZE_MAX);
@ -109,7 +109,7 @@ grantpt (int fd)
if (pts_name (fd, &buf, sizeof (_buf))) if (pts_name (fd, &buf, sizeof (_buf)))
return -1; return -1;
if (__xstat (_STAT_VER, buf, &st) < 0) if (__xstat64 (_STAT_VER, buf, &st) < 0)
goto cleanup; goto cleanup;
/* Make sure that we own the device. */ /* Make sure that we own the device. */

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -71,7 +71,7 @@ DIR *
__opendir (const char *name) __opendir (const char *name)
{ {
DIR *dirp; DIR *dirp;
struct stat statbuf; struct stat64 statbuf;
int fd; int fd;
size_t allocation; size_t allocation;
int save_errno; int save_errno;
@ -96,7 +96,7 @@ __opendir (const char *name)
/* We first have to check whether the name is for a directory. We /* 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 cannot do this after the open() call since the open/close operation
performed on, say, a tape device might have undesirable effects. */ 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; return NULL;
if (! S_ISDIR (statbuf.st_mode)) 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 /* Now make sure this really is a directory and nothing changed since
the `stat' call. */ the `stat' call. */
if (__fstat (fd, &statbuf) < 0) if (__fxstat64 (_STAT_VER, fd, &statbuf) < 0)
goto lose; goto lose;
if (! S_ISDIR (statbuf.st_mode)) if (! S_ISDIR (statbuf.st_mode))
{ {

View File

@ -31,13 +31,13 @@ int
fstatvfs (int fd, struct statvfs *buf) fstatvfs (int fd, struct statvfs *buf)
{ {
struct statfs fsbuf; struct statfs fsbuf;
struct stat st; struct stat64 st;
/* Get as much information as possible from the system. */ /* Get as much information as possible from the system. */
if (__fstatfs (fd, &fsbuf) < 0) if (__fstatfs (fd, &fsbuf) < 0)
return -1; return -1;
#define STAT(st) fstat (fd, st) #define STAT(st) fstat64 (fd, st)
#include "internal_statvfs.c" #include "internal_statvfs.c"
/* We signal success if the statfs call succeeded. */ /* We signal success if the statfs call succeeded. */

View File

@ -56,10 +56,10 @@
while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf))) while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
{ {
struct stat fsst; struct stat64 fsst;
/* Find out about the device the current entry is for. */ /* 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) && st.st_dev == fsst.st_dev)
{ {
/* Bingo, we found the entry for the device FD is on. /* Bingo, we found the entry for the device FD is on.

View File

@ -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. This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998. 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 terminal devices. As of Linux 2.1.115 these are no longer
supported. They have been replaced by major numbers 2 (masters) supported. They have been replaced by major numbers 2 (masters)
and 3 (slaves). */ and 3 (slaves). */
/* Directory where we can find the slave pty nodes. */ /* Directory where we can find the slave pty nodes. */
#define _PATH_DEVPTS "/dev/pts/" #define _PATH_DEVPTS "/dev/pts/"
@ -74,7 +74,7 @@ int
__ptsname_r (int fd, char *buf, size_t buflen) __ptsname_r (int fd, char *buf, size_t buflen)
{ {
int save_errno = errno; int save_errno = errno;
struct stat st; struct stat64 st;
int ptyno; int ptyno;
if (buf == NULL) if (buf == NULL)
@ -121,7 +121,7 @@ __ptsname_r (int fd, char *buf, size_t buflen)
return ERANGE; return ERANGE;
} }
if (__fstat (fd, &st) < 0) if (__fxstat64 (_STAT_VER, fd, &st) < 0)
return errno; return errno;
/* Check if FD really is a master pseudo terminal. */ /* 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'; p[2] = '\0';
} }
if (__xstat (_STAT_VER, buf, &st) < 0) if (__xstat64 (_STAT_VER, buf, &st) < 0)
return errno; return errno;
/* Check if the name we're about to return really corresponds to a /* Check if the name we're about to return really corresponds to a

View File

@ -31,13 +31,13 @@ int
statvfs (const char *file, struct statvfs *buf) statvfs (const char *file, struct statvfs *buf)
{ {
struct statfs fsbuf; struct statfs fsbuf;
struct stat st; struct stat64 st;
/* Get as much information as possible from the system. */ /* Get as much information as possible from the system. */
if (__statfs (file, &fsbuf) < 0) if (__statfs (file, &fsbuf) < 0)
return -1; return -1;
#define STAT(st) stat (file, st) #define STAT(st) stat64 (file, st)
#include "internal_statvfs.c" #include "internal_statvfs.c"
/* We signal success if the statfs call succeeded. */ /* We signal success if the statfs call succeeded. */

View File

@ -31,7 +31,7 @@
char *__ttyname; char *__ttyname;
static char *getttyname (const char *dev, dev_t mydev, 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; internal_function;
@ -39,10 +39,10 @@ static char *getttyname_name;
static char * static char *
internal_function 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; static size_t namelen;
struct stat st; struct stat64 st;
DIR *dirstream; DIR *dirstream;
struct dirent *d; struct dirent *d;
size_t devlen = strlen (dev) + 1; 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)) = '/'; *((char *) __mempcpy (getttyname_name, dev, devlen - 1)) = '/';
} }
memcpy (&getttyname_name[devlen], d->d_name, dlen); 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 #ifdef _STATBUF_ST_RDEV
&& S_ISCHR (st.st_mode) && st.st_rdev == mydev && S_ISCHR (st.st_mode) && st.st_rdev == mydev
#else #else
&& (ino_t) d->d_fileno == myino && st.st_dev == mydev && (ino64_t) d->d_fileno == myino && st.st_dev == mydev
#endif #endif
) )
{ {
@ -108,7 +108,7 @@ ttyname (int fd)
{ {
static size_t buflen; static size_t buflen;
char procname[30]; char procname[30];
struct stat st, st1; struct stat64 st, st1;
int dostat = 0; int dostat = 0;
char *name; char *name;
int save = errno; int save = errno;
@ -143,10 +143,10 @@ ttyname (int fd)
return ttyname_buf; return ttyname_buf;
} }
if (__fxstat (_STAT_VER, fd, &st) < 0) if (__fxstat64 (_STAT_VER, fd, &st) < 0)
return NULL; 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 #ifdef _STATBUF_ST_RDEV
name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat); name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat);

View File

@ -29,15 +29,15 @@
#include <stdio-common/_itoa.h> #include <stdio-common/_itoa.h>
static int getttyname_r (char *buf, size_t buflen, 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; int *dostat) internal_function;
static int static int
internal_function 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) int save, int *dostat)
{ {
struct stat st; struct stat64 st;
DIR *dirstream; DIR *dirstream;
struct dirent *d; struct dirent *d;
size_t devlen = strlen (buf); 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 = __stpncpy (buf + devlen, d->d_name, needed);
cp[0] = '\0'; cp[0] = '\0';
if (__xstat (_STAT_VER, buf, &st) == 0 if (__xstat64 (_STAT_VER, buf, &st) == 0
#ifdef _STATBUF_ST_RDEV #ifdef _STATBUF_ST_RDEV
&& S_ISCHR (st.st_mode) && st.st_rdev == mydev && S_ISCHR (st.st_mode) && st.st_rdev == mydev
#else #else
&& (ino_t) d->d_fileno == myino && st.st_dev == mydev && (ino64_t) d->d_fileno == myino && st.st_dev == mydev
#endif #endif
) )
{ {
@ -96,7 +96,7 @@ int
__ttyname_r (int fd, char *buf, size_t buflen) __ttyname_r (int fd, char *buf, size_t buflen)
{ {
char procname[30]; char procname[30];
struct stat st, st1; struct stat64 st, st1;
int dostat = 0; int dostat = 0;
int save = errno; int save = errno;
int ret; int ret;
@ -136,14 +136,14 @@ __ttyname_r (int fd, char *buf, size_t buflen)
return ERANGE; return ERANGE;
} }
if (__fxstat (_STAT_VER, fd, &st) < 0) if (__fxstat64 (_STAT_VER, fd, &st) < 0)
return errno; return errno;
/* Prepare the result buffer. */ /* Prepare the result buffer. */
memcpy (buf, "/dev/pts/", sizeof ("/dev/pts/")); memcpy (buf, "/dev/pts/", sizeof ("/dev/pts/"));
buflen -= sizeof ("/dev/pts/") - 1; 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 #ifdef _STATBUF_ST_RDEV
ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save,

View File

@ -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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
@ -25,10 +25,10 @@ ftok (pathname, proj_id)
const char *pathname; const char *pathname;
int proj_id; int proj_id;
{ {
struct stat st; struct stat64 st;
key_t key; key_t key;
if (__xstat (_STAT_VER, pathname, &st) < 0) if (__xstat64 (_STAT_VER, pathname, &st) < 0)
return (key_t) -1; return (key_t) -1;
key = ((st.st_ino & 0xffff) | ((st.st_dev & 0xff) << 16) key = ((st.st_ino & 0xffff) | ((st.st_dev & 0xff) << 16)

View File

@ -23,6 +23,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <unistd.h>
#include <sys/stat.h> #include <sys/stat.h>
#define TM_YEAR_BASE 1900 #define TM_YEAR_BASE 1900
@ -110,19 +111,22 @@ __getdate_r (const char *string, struct tm *tp)
char *result = NULL; char *result = NULL;
time_t timer; time_t timer;
struct tm tm; struct tm tm;
struct stat st; struct stat64 st;
int mday_ok = 0; int mday_ok = 0;
datemsk = getenv ("DATEMSK"); datemsk = getenv ("DATEMSK");
if (datemsk == NULL || *datemsk == '\0') if (datemsk == NULL || *datemsk == '\0')
return 1; return 1;
if (stat (datemsk, &st) < 0) if (stat64 (datemsk, &st) < 0)
return 3; return 3;
if (!S_ISREG (st.st_mode)) if (!S_ISREG (st.st_mode))
return 4; return 4;
if (__access (datemsk, R_OK) < 0)
return 2;
/* Open the template file. */ /* Open the template file. */
fp = fopen (datemsk, "r"); fp = fopen (datemsk, "r");
if (fp == NULL) if (fp == NULL)