]> 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 16:36:38 +0000 (13:36 -0300)
This is a missing spot initially from 52a5fe70a2c77935.

Checked on i686-linux-gnu.

(cherry picked from commit c86631de6fa2fb5fa293810c66e53898537a4ddc)

NEWS
catgets/open_catalog.c

diff --git a/NEWS b/NEWS
index ad6de8304f5f3963c9dbbc16cf1c0e136af966ba..70e561659a694ffc76a0f6a78b49fd7c4fbf7499 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -107,6 +107,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.34
index 7f67cc056445b5e25dff591e1f0dea5c3223a66d..75703b2cadd1764cdc92de59af3224ff869d13f5 100644 (file)
@@ -40,7 +40,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;
@@ -194,7 +194,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)