]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
catgets: Use 64 bit stat for __open_catalog (BZ# 29211)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 31 May 2022 15:38:55 +0000 (12:38 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 1 Jun 2022 17:19:24 +0000 (14:19 -0300)
This is a missing spot initially from 52a5fe70a2c77935.

Checked on i686-linux-gnu.

(cherry picked from commit 634f566c3e20a8a620dbd869a0089e33c105a3ea)

NEWS
catgets/open_catalog.c

diff --git a/NEWS b/NEWS
index 5692715ef286c54680de653288ae23659fb881c7..beaaf7a6c2de5147ece1c03875a4d11433770f11 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -38,6 +38,7 @@ The following bugs are resolved with this release:
   [29208] libc: fpathconf(_PC_ASYNC_IO) is not y2038 aware
   [29209] libc: isfdtype is not y2038 aware
   [29210] network: ruserpass is not y2038 aware
+  [29211] libc: __open_catalog is not y2038 aware
 
 \f
 Version 2.35
index 48c2a4b983c5f2c685f41167b18b9c0544a24649..cb1d123cdbf500b0cfac19f884580c5db7b6a47c 100644 (file)
@@ -39,7 +39,7 @@ __open_catalog (const char *cat_name, const char *nlspath, const char *env_var,
                __nl_catd catalog)
 {
   int fd = -1;
-  struct stat64 st;
+  struct __stat64_t64 st;
   int swapping;
   size_t cnt;
   size_t max_offset;
@@ -193,7 +193,7 @@ __open_catalog (const char *cat_name, const char *nlspath, const char *env_var,
       return -1;
     }
 
-  if (__builtin_expect (__fstat64 (fd, &st), 0) < 0)
+  if (__glibc_unlikely (__fstat64_time64 (fd, &st) < 0))
     goto close_unlock_return;
 
   if (__builtin_expect (!S_ISREG (st.st_mode), 0)