diff options
Diffstat (limited to 'meta/recipes-core/glibc/glibc/0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch')
-rw-r--r-- | meta/recipes-core/glibc/glibc/0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch b/meta/recipes-core/glibc/glibc/0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch new file mode 100644 index 0000000000..1b347b3322 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0027-elf-Replace-strcpy-call-with-memcpy-BZ-29454.patch @@ -0,0 +1,32 @@ +From f0e36cf0b348dbc990af9f869196710ca89c28c2 Mon Sep 17 00:00:00 2001 +From: Noah Goldstein <goldstein.w.n@gmail.com> +Date: Sun, 7 Aug 2022 23:54:19 +0800 +Subject: [PATCH] elf: Replace `strcpy` call with `memcpy` [BZ #29454] + +GCC normally does this optimization for us in +strlen_pass::handle_builtin_strcpy but only for optimized +build. To avoid needing to include strcpy.S in the rtld build to +support the debug build, just do the optimization by hand. + +Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=29454 https://sourceware.org/pipermail/libc-alpha/2022-August/141290.html] +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + elf/dl-cache.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/elf/dl-cache.c b/elf/dl-cache.c +index c02a95d9b5..03a6d236e8 100644 +--- a/elf/dl-cache.c ++++ b/elf/dl-cache.c +@@ -513,8 +513,9 @@ _dl_load_cache_lookup (const char *name) + we are accessing. Therefore we must make the copy of the + mapping data without using malloc. */ + char *temp; +- temp = alloca (strlen (best) + 1); +- strcpy (temp, best); ++ size_t best_len = strlen (best) + 1; ++ temp = alloca (best_len); ++ memcpy (temp, best, best_len); + return __strdup (temp); + } + |