Sync with upstream branch release/2.34/master

Upstream commit: 4c92a1041257c0155c6aa7a182fe5f78e477b0e6

- powerpc: Fix VSX register number on __strncpy_power9 [BZ #29197]
- socket: Fix mistyped define statement in socket/sys/socket.h (BZ #29225)
- iconv: Use 64 bit stat for gconv_parseconfdir (BZ# 29213)
- catgets: Use 64 bit stat for __open_catalog (BZ# 29211)
- inet: Use 64 bit stat for ruserpass (BZ# 29210)
- socket: Use 64 bit stat for isfdtype (BZ# 29209)
- posix: Use 64 bit stat for fpathconf (_PC_ASYNC_IO) (BZ# 29208)
- posix: Use 64 bit stat for posix_fallocate fallback (BZ# 29207)
- misc: Use 64 bit stat for getusershell (BZ# 29204)
- misc: Use 64 bit stat for daemon (BZ# 29203)
This commit is contained in:
Florian Weimer 2022-06-08 14:59:13 +02:00
parent 384d2e88cc
commit 8f39978f4c
11 changed files with 382 additions and 1 deletions

View File

@ -0,0 +1,30 @@
commit b349fe072275bfc5763110a49fe6ef1b44d60289
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 11:46:59 2022 -0300
misc: Use 64 bit stat for daemon (BZ# 29203)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit 3fbc33010c76721d34f676d8efb45bcc54e0d575)
diff --git a/misc/daemon.c b/misc/daemon.c
index 0e688f4d7482e335..3c73ac2ab8709812 100644
--- a/misc/daemon.c
+++ b/misc/daemon.c
@@ -61,11 +61,10 @@ daemon (int nochdir, int noclose)
(void)__chdir("/");
if (!noclose) {
- struct stat64 st;
+ struct __stat64_t64 st;
if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
- && (__builtin_expect (__fstat64 (fd, &st), 0)
- == 0)) {
+ && __glibc_likely (__fstat64_time64 (fd, &st) == 0)) {
if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0
#if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
&& (st.st_rdev

View File

@ -0,0 +1,34 @@
commit aa8a87f51d7a1fb86ff75d3e3870316b6bc70dfe
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 11:51:46 2022 -0300
misc: Use 64 bit stat for getusershell (BZ# 29204)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit ec995fb2152f160f02bf695ff83c45df4a6cd868)
diff --git a/misc/getusershell.c b/misc/getusershell.c
index 11f5aa83f888a114..4221095dca743dfa 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -97,7 +97,7 @@ initshells (void)
{
char **sp, *cp;
FILE *fp;
- struct stat64 statb;
+ struct __stat64_t64 statb;
size_t flen;
free(shells);
@@ -106,7 +106,7 @@ initshells (void)
strings = NULL;
if ((fp = fopen(_PATH_SHELLS, "rce")) == NULL)
goto init_okshells_noclose;
- if (__fstat64(fileno(fp), &statb) == -1) {
+ if (__fstat64_time64(fileno(fp), &statb) == -1) {
init_okshells:
(void)fclose(fp);
init_okshells_noclose:

View File

@ -0,0 +1,56 @@
commit 9db6a597ef950737d3cd7af0d4211291197b82dd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:17:20 2022 -0300
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/sysdeps/posix/posix_fallocate.c b/sysdeps/posix/posix_fallocate.c
index 0bb379c94d7cf779..4381033d6e16c2e3 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 c1e233b49c8d7f37..d45b0c17489fbbbb 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;

View File

@ -0,0 +1,28 @@
commit f9c3e57ac25511db78f3d51a38f6a715be220479
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:22:13 2022 -0300
posix: Use 64 bit stat for fpathconf (_PC_ASYNC_IO) (BZ# 29208)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit 6e7137f28c9d743d66b5a1cb8fa0d1717b96f853)
diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c
index ec0e780466756e00..e673f2016136679e 100644
--- a/sysdeps/posix/fpathconf.c
+++ b/sysdeps/posix/fpathconf.c
@@ -131,9 +131,9 @@ __fpathconf (int fd, int name)
#ifdef _POSIX_ASYNC_IO
{
/* AIO is only allowed on regular files and block devices. */
- struct stat64 st;
+ struct __stat64_t64 st;
- if (__fstat64 (fd, &st) < 0
+ if (__fstat64_time64 (fd, &st) < 0
|| (! S_ISREG (st.st_mode) && ! S_ISBLK (st.st_mode)))
return -1;
else

View File

@ -0,0 +1,31 @@
commit 61fd3e0e7495f597b41e90d3e045b8c3b182a23d
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:28:20 2022 -0300
socket: Use 64 bit stat for isfdtype (BZ# 29209)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit 87f1ec12e79a3895b33801fa816884f0d24ae7ef)
diff --git a/sysdeps/posix/isfdtype.c b/sysdeps/posix/isfdtype.c
index 06b5386c4379063d..f18bcfef224ebac6 100644
--- a/sysdeps/posix/isfdtype.c
+++ b/sysdeps/posix/isfdtype.c
@@ -24,12 +24,12 @@
int
isfdtype (int fildes, int fdtype)
{
- struct stat64 st;
+ struct __stat64_t64 st;
int result;
{
int save_error = errno;
- result = __fstat64 (fildes, &st);
+ result = __fstat64_time64 (fildes, &st);
__set_errno (save_error);
}

View File

@ -0,0 +1,34 @@
commit 34422108f4e0b8fc0d950b8c00b87193a7884ee5
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:34:48 2022 -0300
inet: Use 64 bit stat for ruserpass (BZ# 29210)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit 3cd4785ea02cc3878bf21996cf9b61b3a306447e)
diff --git a/inet/ruserpass.c b/inet/ruserpass.c
index d61a72877d20b7e5..75e2a065524aa1d5 100644
--- a/inet/ruserpass.c
+++ b/inet/ruserpass.c
@@ -95,7 +95,7 @@ ruserpass (const char *host, const char **aname, const char **apass)
char *hdir, *buf, *tmp;
char myname[1024], *mydomain;
int t, usedefault = 0;
- struct stat64 stb;
+ struct __stat64_t64 stb;
hdir = __libc_secure_getenv("HOME");
if (hdir == NULL) {
@@ -174,7 +174,7 @@ next:
break;
case PASSWD:
if (strcmp(*aname, "anonymous") &&
- __fstat64(fileno(cfile), &stb) >= 0 &&
+ __fstat64_time64(fileno(cfile), &stb) >= 0 &&
(stb.st_mode & 077) != 0) {
warnx(_("Error: .netrc file is readable by others."));
warnx(_("Remove 'password' line or make file unreadable by others."));

View File

@ -0,0 +1,34 @@
commit 52431199b5cef8f56c71c66f5859b097804aebe8
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:38:55 2022 -0300
catgets: Use 64 bit stat for __open_catalog (BZ# 29211)
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit c86631de6fa2fb5fa293810c66e53898537a4ddc)
diff --git a/catgets/open_catalog.c b/catgets/open_catalog.c
index 7f67cc056445b5e2..75703b2cadd1764c 100644
--- a/catgets/open_catalog.c
+++ b/catgets/open_catalog.c
@@ -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)

View File

@ -0,0 +1,47 @@
commit b3f935940ebcdf553b64e74fdf65dfd4858821ad
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Tue May 31 12:51:43 2022 -0300
iconv: Use 64 bit stat for gconv_parseconfdir (BZ# 29213)
The issue is only when used within libc.so (iconvconfig already builds
with _TIME_SIZE=64).
This is a missing spot initially from 52a5fe70a2c77935.
Checked on i686-linux-gnu.
(cherry picked from commit c789e6e40974e2b67bd33a17f29b20dce6ae8822)
diff --git a/iconv/gconv_parseconfdir.h b/iconv/gconv_parseconfdir.h
index a586268abc103abd..79398a980cde84e3 100644
--- a/iconv/gconv_parseconfdir.h
+++ b/iconv/gconv_parseconfdir.h
@@ -32,8 +32,11 @@
# define readdir __readdir
# define closedir __closedir
# define mempcpy __mempcpy
-# define lstat64 __lstat64
+# define struct_stat struct __stat64_t64
+# define lstat __lstat64_time64
# define feof_unlocked __feof_unlocked
+#else
+# define struct_stat struct stat
#endif
/* Name of the file containing the module information in the directories
@@ -158,12 +161,12 @@ gconv_parseconfdir (const char *prefix, const char *dir, size_t dir_len)
&& strcmp (ent->d_name + len - strlen (suffix), suffix) == 0)
{
char *conf;
- struct stat64 st;
+ struct_stat st;
if (asprintf (&conf, "%s/%s", buf, ent->d_name) < 0)
continue;
if (ent->d_type != DT_UNKNOWN
- || (lstat64 (conf, &st) != -1 && S_ISREG (st.st_mode)))
+ || (lstat (conf, &st) != -1 && S_ISREG (st.st_mode)))
found |= read_conf_file (conf, dir, dir_len);
free (conf);

View File

@ -0,0 +1,21 @@
commit 9947f2df19a6c5b5706ed3b002199dbb9fef17b1
Author: Dmitriy Fedchenko <xfedch@gmail.com>
Date: Mon Jun 6 12:46:14 2022 -0300
socket: Fix mistyped define statement in socket/sys/socket.h (BZ #29225)
(cherry picked from commit 999835533bc60fbd0b0b65d2412a6742e5a54b9d)
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index bd14e7e3a5008ec5..5765dc1f0dedd380 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -181,7 +181,7 @@ extern ssize_t __REDIRECT (sendmsg, (int __fd, const struct msghdr *__message,
# else
extern ssize_t __sendmsg64 (int __fd, const struct msghdr *__message,
int __flags);
-# defien sendmsg __sendmsg64
+# define sendmsg __sendmsg64
# endif
#endif

View File

@ -0,0 +1,42 @@
commit 4c92a1041257c0155c6aa7a182fe5f78e477b0e6
Author: Matheus Castanho <msc@linux.ibm.com>
Date: Tue Jun 7 10:27:26 2022 -0300
powerpc: Fix VSX register number on __strncpy_power9 [BZ #29197]
__strncpy_power9 initializes VR 18 with zeroes to be used throughout the
code, including when zero-padding the destination string. However, the
v18 reference was mistakenly being used for stxv and stxvl, which take a
VSX vector as operand. The code ended up using the uninitialized VSR 18
register by mistake.
Both occurrences have been changed to use the proper VSX number for VR 18
(i.e. VSR 50).
Tested on powerpc, powerpc64 and powerpc64le.
Signed-off-by: Kewen Lin <linkw@gcc.gnu.org>
(cherry picked from commit 0218463dd8265ed937622f88ac68c7d984fe0cfc)
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
index 291941c1e5c0eb4b..5421525acee3ebfe 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
@@ -352,7 +352,7 @@ L(zero_padding_loop):
cmpldi cr6,r5,16 /* Check if length was reached. */
ble cr6,L(zero_padding_end)
- stxv v18,0(r11)
+ stxv 32+v18,0(r11)
addi r11,r11,16
addi r5,r5,-16
@@ -360,7 +360,7 @@ L(zero_padding_loop):
L(zero_padding_end):
sldi r10,r5,56 /* stxvl wants size in top 8 bits */
- stxvl v18,r11,r10 /* Partial store */
+ stxvl 32+v18,r11,r10 /* Partial store */
blr
.align 4

View File

@ -148,7 +148,7 @@ end \
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
Release: 35%{?dist}
Release: 36%{?dist}
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
# libraries.
@ -529,6 +529,16 @@ Patch321: glibc-upstream-2.34-255.patch
Patch322: glibc-upstream-2.34-256.patch
Patch323: glibc-upstream-2.34-257.patch
Patch324: glibc-upstream-2.34-258.patch
Patch325: glibc-upstream-2.34-259.patch
Patch326: glibc-upstream-2.34-260.patch
Patch327: glibc-upstream-2.34-261.patch
Patch328: glibc-upstream-2.34-262.patch
Patch329: glibc-upstream-2.34-263.patch
Patch330: glibc-upstream-2.34-264.patch
Patch331: glibc-upstream-2.34-265.patch
Patch332: glibc-upstream-2.34-266.patch
Patch333: glibc-upstream-2.34-267.patch
Patch334: glibc-upstream-2.34-268.patch
##############################################################################
# Continued list of core "glibc" package information:
@ -2585,6 +2595,20 @@ fi
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
%changelog
* Wed Jun 8 2022 Florian Weimer <fweimer@redhat.com> - 2.34-36
- Sync with upstream branch release/2.34/master,
commit 4c92a1041257c0155c6aa7a182fe5f78e477b0e6:
- powerpc: Fix VSX register number on __strncpy_power9 [BZ #29197]
- socket: Fix mistyped define statement in socket/sys/socket.h (BZ #29225)
- iconv: Use 64 bit stat for gconv_parseconfdir (BZ# 29213)
- catgets: Use 64 bit stat for __open_catalog (BZ# 29211)
- inet: Use 64 bit stat for ruserpass (BZ# 29210)
- socket: Use 64 bit stat for isfdtype (BZ# 29209)
- posix: Use 64 bit stat for fpathconf (_PC_ASYNC_IO) (BZ# 29208)
- posix: Use 64 bit stat for posix_fallocate fallback (BZ# 29207)
- misc: Use 64 bit stat for getusershell (BZ# 29204)
- misc: Use 64 bit stat for daemon (BZ# 29203)
* Tue May 31 2022 Arjun Shankar <arjun@redhat.com> - 2.34-35
- Sync with upstream branch release/2.34/master,
commit ff450cdbdee0b8cb6b9d653d6d2fa892de29be31: