catgets: Use 64 bit stat for __open_catalog (BZ# 29211)

This is a missing spot initially from 52a5fe70a2.

Checked on i686-linux-gnu.

(cherry picked from commit c86631de6fa2fb5fa293810c66e53898537a4ddc)
This commit is contained in:
Adhemerval Zanella 2022-05-31 12:38:55 -03:00
parent 34422108f4
commit 52431199b5
2 changed files with 3 additions and 2 deletions

1
NEWS
View File

@ -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
Version 2.34

View 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)