forked from rpms/glibc
Improve test coverage for wcsdup, strdup and strndup.
Resolves: RHEL-15343
This commit is contained in:
parent
bca78af34a
commit
654c9b6d78
26
glibc-RHEL-15343-1.patch
Normal file
26
glibc-RHEL-15343-1.patch
Normal file
@ -0,0 +1,26 @@
|
||||
commit 1626d8a521c7c771d4118b1328421fea113cab64
|
||||
Author: Joe Simmons-Talbott <josimmon@redhat.com>
|
||||
Date: Fri Apr 21 09:24:22 2023 -0400
|
||||
|
||||
string: Allow use of test-string.h for non-ifunc implementations.
|
||||
|
||||
Mark two variables as unused to silence warning when using
|
||||
test-string.h for non-ifunc implementations.
|
||||
|
||||
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
diff --git a/string/test-string.h b/string/test-string.h
|
||||
index 41de973479..8bcb8afd0a 100644
|
||||
--- a/string/test-string.h
|
||||
+++ b/string/test-string.h
|
||||
@@ -130,8 +130,8 @@ cmdline_process_function (int c)
|
||||
/* Increase size of FUNC_LIST if assert is triggered at run-time. */
|
||||
static struct libc_ifunc_impl func_list[32];
|
||||
static int func_count;
|
||||
-static int impl_count = -1;
|
||||
-static impl_t *impl_array;
|
||||
+static int impl_count __attribute__ ((unused)) = -1;
|
||||
+static impl_t *impl_array __attribute__ ((unused));
|
||||
|
||||
# define FOR_EACH_IMPL(impl, notall) \
|
||||
impl_t *impl; \
|
233
glibc-RHEL-15343-2.patch
Normal file
233
glibc-RHEL-15343-2.patch
Normal file
@ -0,0 +1,233 @@
|
||||
commit eaaad78db41724e5a18a42becb238bfc4e683998
|
||||
Author: Joe Simmons-Talbott <josimmon@redhat.com>
|
||||
Date: Fri Apr 21 09:24:23 2023 -0400
|
||||
|
||||
string: Add tests for strdup (BZ #30266)
|
||||
|
||||
Copy strcpy tests for strdup. Covers some basic testcases with random
|
||||
strings. Add a zero-length string testcase.
|
||||
|
||||
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
Conflicts:
|
||||
string/Makefile
|
||||
(different test backport order)
|
||||
|
||||
|
||||
diff -Nrup a/string/Makefile b/string/Makefile
|
||||
--- a/string/Makefile 2023-11-30 10:59:16.400251685 -0500
|
||||
+++ b/string/Makefile 2023-11-30 11:16:42.829613344 -0500
|
||||
@@ -63,7 +63,8 @@ tests := tester inl-tester noinl-tester
|
||||
tst-strtok_r bug-strcoll2 tst-cmp tst-xbzero-opt \
|
||||
test-endian-types test-endian-file-scope \
|
||||
test-endian-sign-conversion tst-memmove-overflow \
|
||||
- test-sig_np tst-strerror-fail
|
||||
+ test-sig_np tst-strerror-fail \
|
||||
+ test-strdup
|
||||
|
||||
# Both tests require the .mo translation files generated by msgfmt.
|
||||
tests-translation := tst-strsignal \
|
||||
diff -Nrup a/string/test-strdup.c b/string/test-strdup.c
|
||||
--- a/string/test-strdup.c 1969-12-31 19:00:00.000000000 -0500
|
||||
+++ b/string/test-strdup.c 2023-11-30 11:11:32.850447614 -0500
|
||||
@@ -0,0 +1,201 @@
|
||||
+/* Test and measure strdup functions.
|
||||
+ Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <https://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <support/check.h>
|
||||
+
|
||||
+#ifdef WIDE
|
||||
+# include <wchar.h>
|
||||
+# define CHAR wchar_t
|
||||
+# define sfmt "ls"
|
||||
+# define BIG_CHAR WCHAR_MAX
|
||||
+# define SMALL_CHAR 1273
|
||||
+# define STRCMP wcscmp
|
||||
+# define MEMCMP wmemcmp
|
||||
+# define MEMSET wmemset
|
||||
+# define TCS TEST_COMPARE_STRING_WIDE
|
||||
+#else
|
||||
+# define CHAR char
|
||||
+# define sfmt "s"
|
||||
+# define BIG_CHAR CHAR_MAX
|
||||
+# define SMALL_CHAR 127
|
||||
+# define STRCMP strcmp
|
||||
+# define MEMCMP memcmp
|
||||
+# define MEMSET memset
|
||||
+# define TCS TEST_COMPARE_STRING
|
||||
+#endif
|
||||
+
|
||||
+#ifndef STRDUP_RESULT
|
||||
+# define STRDUP_RESULT(dst, len) dst
|
||||
+# define TEST_MAIN
|
||||
+# ifndef WIDE
|
||||
+# define TEST_NAME "strdup"
|
||||
+# else
|
||||
+# define TEST_NAME "wcsdup"
|
||||
+# endif
|
||||
+# include "test-string.h"
|
||||
+# ifndef WIDE
|
||||
+# define STRDUP strdup
|
||||
+# else
|
||||
+# define STRDUP wcsdup
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+typedef CHAR *(*proto_t) (const CHAR *);
|
||||
+
|
||||
+static void
|
||||
+do_zero_len_test (void)
|
||||
+{
|
||||
+ CHAR src[1] = { '\0' };
|
||||
+ CHAR *dst = STRDUP (src);
|
||||
+
|
||||
+ TCS (dst, src);
|
||||
+ free (dst);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_one_test (const CHAR *src,
|
||||
+ size_t len __attribute__((unused)))
|
||||
+{
|
||||
+ CHAR *dst = STRDUP (src);
|
||||
+
|
||||
+ if (STRCMP (dst, src) != 0)
|
||||
+ {
|
||||
+ error (0, 0,
|
||||
+ "Wrong result in function %s dst \"%" sfmt "\" src \"%" sfmt "\"",
|
||||
+ TEST_NAME, dst, src);
|
||||
+ ret = 1;
|
||||
+ free (dst);
|
||||
+ return;
|
||||
+ }
|
||||
+ free (dst);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_test (size_t align1, size_t align2, size_t len, int max_char)
|
||||
+{
|
||||
+ size_t i;
|
||||
+ CHAR *s1;
|
||||
+/* For wcsdup: align1 and align2 here mean alignment not in bytes,
|
||||
+ but in wchar_ts, in bytes it will equal to align * (sizeof (wchar_t))
|
||||
+ len for wcschr here isn't in bytes but it's number of wchar_t symbols. */
|
||||
+ align1 &= 7;
|
||||
+ if ((align1 + len) * sizeof (CHAR) >= page_size)
|
||||
+ return;
|
||||
+
|
||||
+ align2 &= 7;
|
||||
+ if ((align2 + len) * sizeof (CHAR) >= page_size)
|
||||
+ return;
|
||||
+
|
||||
+ s1 = (CHAR *) (buf1) + align1;
|
||||
+
|
||||
+ for (i = 0; i < len; i++)
|
||||
+ s1[i] = 32 + 23 * i % (max_char - 32);
|
||||
+ s1[len] = 0;
|
||||
+
|
||||
+ do_one_test (s1, len);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_random_tests (void)
|
||||
+{
|
||||
+ size_t i, j, n, align1, align2, len;
|
||||
+ CHAR *p1 = (CHAR *)(buf1 + page_size) - 512;
|
||||
+ CHAR *res;
|
||||
+
|
||||
+ for (n = 0; n < ITERATIONS; n++)
|
||||
+ {
|
||||
+ /* align1 and align2 are expressed as wchar_t and not in bytes for wide
|
||||
+ char test, and thus it will be equal to align times wchar_t size.
|
||||
+
|
||||
+ For non wide version we need to check all alignments from 0 to 63
|
||||
+ since some assembly implementations have separate prolog for alignments
|
||||
+ more 48. */
|
||||
+
|
||||
+ align1 = random () & (63 / sizeof (CHAR));
|
||||
+ if (random () & 1)
|
||||
+ align2 = random () & (63 / sizeof (CHAR));
|
||||
+ else
|
||||
+ align2 = align1 + (random () & 24);
|
||||
+ len = random () & 511;
|
||||
+ j = align1;
|
||||
+ if (align2 > j)
|
||||
+ j = align2;
|
||||
+ if (len + j >= 511)
|
||||
+ len = 510 - j - (random () & 7);
|
||||
+ j = len + align1 + 64;
|
||||
+ if (j > 512)
|
||||
+ j = 512;
|
||||
+ for (i = 0; i < j; i++)
|
||||
+ {
|
||||
+ if (i == len + align1)
|
||||
+ p1[i] = 0;
|
||||
+ else
|
||||
+ {
|
||||
+ p1[i] = random () & BIG_CHAR;
|
||||
+ if (i >= align1 && i < len + align1 && !p1[i])
|
||||
+ p1[i] = (random () & SMALL_CHAR) + 3;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ res = STRDUP(p1 + align1);
|
||||
+ TCS (res, (p1 + align1));
|
||||
+ free (res);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
+int
|
||||
+test_main (void)
|
||||
+{
|
||||
+ size_t i;
|
||||
+
|
||||
+ test_init ();
|
||||
+
|
||||
+ printf ("%23s", "");
|
||||
+ printf ("\t%s", TEST_NAME);
|
||||
+ putchar ('\n');
|
||||
+
|
||||
+ for (i = 0; i < 16; ++i)
|
||||
+ {
|
||||
+ do_test (0, 0, i, SMALL_CHAR);
|
||||
+ do_test (0, 0, i, BIG_CHAR);
|
||||
+ do_test (0, i, i, SMALL_CHAR);
|
||||
+ do_test (i, 0, i, BIG_CHAR);
|
||||
+ }
|
||||
+
|
||||
+ for (i = 1; i < 8; ++i)
|
||||
+ {
|
||||
+ do_test (0, 0, 8 << i, SMALL_CHAR);
|
||||
+ do_test (8 - i, 2 * i, 8 << i, SMALL_CHAR);
|
||||
+ }
|
||||
+
|
||||
+ for (i = 1; i < 8; ++i)
|
||||
+ {
|
||||
+ do_test (i, 2 * i, 8 << i, SMALL_CHAR);
|
||||
+ do_test (2 * i, i, 8 << i, BIG_CHAR);
|
||||
+ do_test (i, i, 8 << i, SMALL_CHAR);
|
||||
+ do_test (i, i, 8 << i, BIG_CHAR);
|
||||
+ }
|
||||
+
|
||||
+ do_zero_len_test ();
|
||||
+ do_random_tests ();
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+#include <support/test-driver.c>
|
232
glibc-RHEL-15343-3.patch
Normal file
232
glibc-RHEL-15343-3.patch
Normal file
@ -0,0 +1,232 @@
|
||||
commit 0c48aa0551151ea201f7f528492e89a0b08a6890
|
||||
Author: Joe Simmons-Talbott <josimmon@redhat.com>
|
||||
Date: Fri Apr 21 09:24:24 2023 -0400
|
||||
|
||||
string: Add tests for strndup (BZ #30266)
|
||||
|
||||
Copy strncpy tests for strndup. Covers some basic testcases with random
|
||||
strings. Remove tests that set the destination's bytes and checked the
|
||||
resulting buffer's bytes. Remove wide character test support since
|
||||
wcsndup() doesn't exist.
|
||||
|
||||
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
Conflicts:
|
||||
string/Makefile
|
||||
(different test backport order)
|
||||
|
||||
diff -Nrup a/string/Makefile b/string/Makefile
|
||||
--- a/string/Makefile 2023-11-30 11:55:02.263010916 -0500
|
||||
+++ b/string/Makefile 2023-11-30 11:58:29.238954539 -0500
|
||||
@@ -64,7 +64,7 @@ tests := tester inl-tester noinl-tester
|
||||
test-endian-types test-endian-file-scope \
|
||||
test-endian-sign-conversion tst-memmove-overflow \
|
||||
test-sig_np tst-strerror-fail \
|
||||
- test-strdup
|
||||
+ test-strdup test-strndup
|
||||
|
||||
# Both tests require the .mo translation files generated by msgfmt.
|
||||
tests-translation := tst-strsignal \
|
||||
diff -Nrup a/string/test-strndup.c b/string/test-strndup.c
|
||||
--- a/string/test-strndup.c 1969-12-31 19:00:00.000000000 -0500
|
||||
+++ b/string/test-strndup.c 2023-11-30 11:56:24.986388053 -0500
|
||||
@@ -0,0 +1,200 @@
|
||||
+/* Test strndup functions.
|
||||
+ Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <https://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <support/check.h>
|
||||
+
|
||||
+#define TEST_MAIN
|
||||
+#include "test-string.h"
|
||||
+
|
||||
+static void
|
||||
+do_one_test (const char *src, size_t len, size_t n)
|
||||
+{
|
||||
+ char *dst = strndup (src, n);
|
||||
+ size_t s = (len > n ? n: len) * sizeof (char);
|
||||
+
|
||||
+ TEST_COMPARE_BLOB (dst, s, src, s);
|
||||
+
|
||||
+ free (dst);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char)
|
||||
+{
|
||||
+ size_t i;
|
||||
+ char *s1;
|
||||
+
|
||||
+ align1 &= 7;
|
||||
+ if ((align1 + len) * sizeof (char) >= page_size)
|
||||
+ return;
|
||||
+
|
||||
+ align2 &= 7;
|
||||
+ if ((align2 + len) * sizeof (char) >= page_size)
|
||||
+ return;
|
||||
+
|
||||
+ s1 = (char *) (buf1) + align1;
|
||||
+
|
||||
+ for (i = 0; i < len; ++i)
|
||||
+ s1[i] = 32 + 23 * i % (max_char - 32);
|
||||
+ s1[len] = 0;
|
||||
+ for (i = len + 1; (i + align1) * sizeof (char) < page_size && i < len + 64;
|
||||
+ ++i)
|
||||
+ s1[i] = 32 + 32 * i % (max_char - 32);
|
||||
+
|
||||
+ do_one_test (s1, len, n);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_page_tests (void)
|
||||
+{
|
||||
+ char *s1;
|
||||
+ const size_t maxoffset = 64;
|
||||
+
|
||||
+ /* Put s1 at the maxoffset from the edge of buf1's last page. */
|
||||
+ s1 = (char *) buf1 + BUF1PAGES * page_size / sizeof (char) - maxoffset;
|
||||
+
|
||||
+ memset (s1, 'a', maxoffset - 1);
|
||||
+ s1[maxoffset - 1] = '\0';
|
||||
+
|
||||
+ /* Both strings are bounded to a page with read/write access and the next
|
||||
+ page is protected with PROT_NONE (meaning that any access outside of the
|
||||
+ page regions will trigger an invalid memory access).
|
||||
+
|
||||
+ The loop copies the string s1 for all possible offsets up to maxoffset
|
||||
+ for both inputs with a size larger than s1 (so memory access outside the
|
||||
+ expected memory regions might trigger invalid access). */
|
||||
+
|
||||
+ for (size_t off1 = 0; off1 < maxoffset; off1++)
|
||||
+ for (size_t off2 = 0; off2 < maxoffset; off2++)
|
||||
+ do_one_test (s1 + off1, maxoffset - off1 - 1,
|
||||
+ maxoffset + (maxoffset - off2));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_random_tests (void)
|
||||
+{
|
||||
+ size_t i, j, n, align1, align2, len, size, mode;
|
||||
+ char *p1 = (char *) (buf1 + page_size) - 512;
|
||||
+ char *res;
|
||||
+
|
||||
+ for (n = 0; n < ITERATIONS; n++)
|
||||
+ {
|
||||
+ mode = random ();
|
||||
+ if (mode & 1)
|
||||
+ {
|
||||
+ size = random () & 255;
|
||||
+ align1 = 512 - size - (random () & 15);
|
||||
+ if (mode & 2)
|
||||
+ align2 = align1 - (random () & 24);
|
||||
+ else
|
||||
+ align2 = align1 - (random () & 31);
|
||||
+ if (mode & 4)
|
||||
+ {
|
||||
+ j = align1;
|
||||
+ align1 = align2;
|
||||
+ align2 = j;
|
||||
+ }
|
||||
+ if (mode & 8)
|
||||
+ len = size - (random () & 31);
|
||||
+ else
|
||||
+ len = 512;
|
||||
+ if (len >= 512)
|
||||
+ len = random () & 511;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ align1 = random () & 31;
|
||||
+ if (mode & 2)
|
||||
+ align2 = random () & 31;
|
||||
+ else
|
||||
+ align2 = align1 + (random () & 24);
|
||||
+ len = random () & 511;
|
||||
+ j = align1;
|
||||
+ if (align2 > j)
|
||||
+ j = align2;
|
||||
+ if (mode & 4)
|
||||
+ {
|
||||
+ size = random () & 511;
|
||||
+ if (size + j > 512)
|
||||
+ size = 512 - j - (random () & 31);
|
||||
+ }
|
||||
+ else
|
||||
+ size = 512 - j;
|
||||
+ if ((mode & 8) && len + j >= 512)
|
||||
+ len = 512 - j - (random () & 7);
|
||||
+ }
|
||||
+ j = len + align1 + 64;
|
||||
+ if (j > 512)
|
||||
+ j = 512;
|
||||
+ for (i = 0; i < j; i++)
|
||||
+ {
|
||||
+ if (i == len + align1)
|
||||
+ p1[i] = 0;
|
||||
+ else
|
||||
+ {
|
||||
+ p1[i] = random () & CHAR_MAX;
|
||||
+ if (i >= align1 && i < len + align1 && !p1[i])
|
||||
+ p1[i] = (random () & 127) + 3;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ res = (char *) strndup ((char *) (p1 + align1), size);
|
||||
+ j = len + 1;
|
||||
+ if (size < j)
|
||||
+ j = size;
|
||||
+ TEST_COMPARE_BLOB (res, j, (char *) (p1 + align1), j);
|
||||
+ free (res);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+test_main (void)
|
||||
+{
|
||||
+ size_t i;
|
||||
+
|
||||
+ test_init ();
|
||||
+
|
||||
+ printf ("%28s", "");
|
||||
+ printf ("\t%s", "strndup");
|
||||
+ putchar ('\n');
|
||||
+
|
||||
+ for (i = 1; i < 8; ++i)
|
||||
+ {
|
||||
+ do_test (i, i, 16, 16, 127);
|
||||
+ do_test (i, i, 16, 16, CHAR_MAX);
|
||||
+ do_test (i, 2 * i, 16, 16, 127);
|
||||
+ do_test (2 * i, i, 16, 16, CHAR_MAX);
|
||||
+ do_test (8 - i, 2 * i, 1 << i, 2 << i, 127);
|
||||
+ do_test (2 * i, 8 - i, 2 << i, 1 << i, 127);
|
||||
+ do_test (8 - i, 2 * i, 1 << i, 2 << i, CHAR_MAX);
|
||||
+ do_test (2 * i, 8 - i, 2 << i, 1 << i, CHAR_MAX);
|
||||
+ }
|
||||
+
|
||||
+ for (i = 1; i < 8; ++i)
|
||||
+ {
|
||||
+ do_test (0, 0, 4 << i, 8 << i, 127);
|
||||
+ do_test (0, 0, 16 << i, 8 << i, 127);
|
||||
+ do_test (8 - i, 2 * i, 4 << i, 8 << i, 127);
|
||||
+ do_test (8 - i, 2 * i, 16 << i, 8 << i, 127);
|
||||
+ }
|
||||
+
|
||||
+ do_random_tests ();
|
||||
+ do_page_tests ();
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+#include <support/test-driver.c>
|
33
glibc-RHEL-15343-4.patch
Normal file
33
glibc-RHEL-15343-4.patch
Normal file
@ -0,0 +1,33 @@
|
||||
commit 0aa5b28a504c6f1f17b387d8147715d1496fff62
|
||||
Author: Joe Simmons-Talbott <josimmon@redhat.com>
|
||||
Date: Fri Apr 21 09:24:25 2023 -0400
|
||||
|
||||
wcsmbs: Add wcsdup() tests. (BZ #30266)
|
||||
|
||||
Enable wide character testcases for wcsdup().
|
||||
|
||||
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
Conflicts:
|
||||
wcsmbs/Makefile
|
||||
(different test backport order)
|
||||
|
||||
|
||||
diff -Nrup a/wcsmbs/Makefile b/wcsmbs/Makefile
|
||||
--- a/wcsmbs/Makefile 2023-11-30 14:14:18.755010508 -0500
|
||||
+++ b/wcsmbs/Makefile 2023-11-30 14:38:18.511131851 -0500
|
||||
@@ -53,7 +53,8 @@ tests := tst-wcstof wcsmbs-tst1 tst-wcsn
|
||||
tst-c16c32-1 wcsatcliff tst-wcstol-locale tst-wcstod-nan-locale \
|
||||
tst-wcstod-round test-char-types tst-fgetwc-after-eof \
|
||||
tst-wcstod-nan-sign tst-c16-surrogate tst-c32-state \
|
||||
- $(addprefix test-,$(strop-tests)) tst-mbstowcs
|
||||
+ $(addprefix test-,$(strop-tests)) tst-mbstowcs \
|
||||
+ test-wcsdup
|
||||
|
||||
include ../Rules
|
||||
|
||||
diff -Nrup a/wcsmbs/test-wcsdup.c b/wcsmbs/test-wcsdup.c
|
||||
--- a/wcsmbs/test-wcsdup.c 1969-12-31 19:00:00.000000000 -0500
|
||||
+++ b/wcsmbs/test-wcsdup.c 2023-11-30 14:14:48.869138712 -0500
|
||||
@@ -0,0 +1,2 @@
|
||||
+#define WIDE 1
|
||||
+#include "../string/test-strdup.c"
|
10
glibc.spec
10
glibc.spec
@ -155,7 +155,7 @@ end \
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 91%{?dist}
|
||||
Release: 92%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -781,6 +781,11 @@ Patch544: glibc-RHEL-2338-1.patch
|
||||
Patch545: glibc-RHEL-2338-2.patch
|
||||
Patch546: glibc-RHEL-2338-3.patch
|
||||
Patch547: glibc-RHEL-2338-4.patch
|
||||
Patch548: glibc-RHEL-15343-1.patch
|
||||
Patch549: glibc-RHEL-15343-2.patch
|
||||
Patch550: glibc-RHEL-15343-3.patch
|
||||
Patch551: glibc-RHEL-15343-4.patch
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Continued list of core "glibc" package information:
|
||||
@ -2939,6 +2944,9 @@ update_gconv_modules_cache ()
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Dec 1 2023 Patsy Griffin <patsy@redhat.com> - 2.34-92
|
||||
- Improve test coverage for wcsdup, strdup and strndup. (RHEL-15343)
|
||||
|
||||
* Fri Nov 24 2023 Florian Weimer <fweimer@redhat.com> - 2.34-91
|
||||
- fstat performance enhancement (RHEL-2338)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user