From: Adhemerval Zanella Date: Tue, 31 May 2022 15:17:20 +0000 (-0300) Subject: posix: Use 64 bit stat for posix_fallocate fallback (BZ# 29207) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45e5d0f533c90d40914aa8d737695e5bd5ccae5e;p=thirdparty%2Fglibc.git posix: Use 64 bit stat for posix_fallocate fallback (BZ# 29207) This is a missing spot initially from 52a5fe70a2c77935. Checked on i686-linux-gnu. (cherry picked from commit 574ba60fc8a7fb35e6216e2fdecc521acab7ffd2) --- diff --git a/NEWS b/NEWS index ef700e0e2cc..6783d18015e 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,7 @@ The following bugs are resolved with this release: failure [29203] libc: daemon is not y2038 aware [29204] libc: getusershell is not 2038 aware + [29207] libc: posix_fallocate fallback implementation is not y2038 Version 2.35 diff --git a/sysdeps/posix/posix_fallocate.c b/sysdeps/posix/posix_fallocate.c index 037d328647f..9720e71cc66 100644 --- a/sysdeps/posix/posix_fallocate.c +++ b/sysdeps/posix/posix_fallocate.c @@ -30,7 +30,7 @@ int posix_fallocate (int fd, __off_t offset, __off_t len) { - struct stat64 st; + struct __stat64_t64 st; if (offset < 0 || len < 0) return EINVAL; @@ -48,7 +48,7 @@ posix_fallocate (int fd, __off_t offset, __off_t len) } /* We have to make sure that this is really a regular file. */ - if (__fstat64 (fd, &st) != 0) + if (__fstat64_time64 (fd, &st) != 0) return EBADF; if (S_ISFIFO (st.st_mode)) return ESPIPE; diff --git a/sysdeps/posix/posix_fallocate64.c b/sysdeps/posix/posix_fallocate64.c index a670ee0a39e..bf984f7f910 100644 --- a/sysdeps/posix/posix_fallocate64.c +++ b/sysdeps/posix/posix_fallocate64.c @@ -30,7 +30,7 @@ int __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len) { - struct stat64 st; + struct __stat64_t64 st; if (offset < 0 || len < 0) return EINVAL; @@ -48,7 +48,7 @@ __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len) } /* We have to make sure that this is really a regular file. */ - if (__fstat64 (fd, &st) != 0) + if (__fstat64_time64 (fd, &st) != 0) return EBADF; if (S_ISFIFO (st.st_mode)) return ESPIPE;