From: Florian Weimer <fweimer@redhat.com>
To: Javier Pello <devel@otheo.eu>
Cc: libc-alpha@sourceware.org
Subject: Re: [PATCH 1/4] elf: Fix hwcaps string size overestimation
Date: Thu, 08 Sep 2022 12:15:54 +0200 [thread overview]
Message-ID: <874jxi8945.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <20220905200901.07ccae81662ec00d68094f7e@otheo.eu> (Javier Pello's message of "Mon, 5 Sep 2022 20:09:01 +0200")
* Javier Pello:
> Commit dad90d528259b669342757c37dedefa8577e2636 added glibc-hwcaps
> support for LD_LIBRARY_PATH and, for this, it adjusted the total
> string size required in _dl_important_hwcaps. However, in doing so
> it inadvertently altered the calculation of the size required for
> the power set strings, as the computation of the power set string
> size depended on the first value assigned to the total variable,
> which is later shifted, resulting in overallocation of string
> space. Fix this now by using a different variable to hold the
> string size required for glibc-hwcaps.
>
> Signed-off-by: Javier Pello <devel@otheo.eu>
> ---
> elf/dl-hwcaps.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/elf/dl-hwcaps.c b/elf/dl-hwcaps.c
> index 6f161f6a..92eb5379 100644
> --- a/elf/dl-hwcaps.c
> +++ b/elf/dl-hwcaps.c
> @@ -193,7 +193,7 @@ _dl_important_hwcaps (const char *glibc_hwcaps_prepend,
> /* Each hwcaps subdirectory has a GLIBC_HWCAPS_PREFIX string prefix
> and a "/" suffix once stored in the result. */
> hwcaps_counts.maximum_length += strlen (GLIBC_HWCAPS_PREFIX) + 1;
> - size_t total = (hwcaps_counts.count * (strlen (GLIBC_HWCAPS_PREFIX) + 1)
> + size_t hwcaps_sz = (hwcaps_counts.count * (strlen (GLIBC_HWCAPS_PREFIX) + 1)
> + hwcaps_counts.total_length);
>
> /* Count the number of bits set in the masked value. */
> @@ -229,11 +229,12 @@ _dl_important_hwcaps (const char *glibc_hwcaps_prepend,
> assert (m == cnt);
>
> /* Determine the total size of all strings together. */
> + size_t total;
> if (cnt == 1)
> - total += temp[0].len + 1;
> + total = temp[0].len + 1;
> else
> {
> - total += temp[0].len + temp[cnt - 1].len + 2;
> + total = temp[0].len + temp[cnt - 1].len + 2;
> if (cnt > 2)
> {
> total <<= 1;
> @@ -255,6 +256,7 @@ _dl_important_hwcaps (const char *glibc_hwcaps_prepend,
> /* This is the overall result, including both glibc-hwcaps
> subdirectories and the legacy hwcaps subdirectories using the
> power set construction. */
> + total += hwcaps_sz;
> struct r_strlenpair *overall_result
> = malloc (*sz * sizeof (*result) + total);
> if (overall_result == NULL)
This patch looks good to me. I will push it for you after some testing.
Thanks,
Florian
next prev parent reply other threads:[~2022-09-08 10:15 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-05 18:06 [PATCH 0/4] " Javier Pello
2022-09-05 18:09 ` [PATCH 1/4] " Javier Pello
2022-09-08 10:15 ` Florian Weimer [this message]
2022-09-05 18:10 ` [PATCH 2/4] elf: Simplify hwcaps masked value bit counting Javier Pello
2022-09-05 18:12 ` [PATCH 3/4] elf: Remove unneeded conditional in _dl_important_hwcaps Javier Pello
2022-09-05 18:13 ` [PATCH 4/4] elf: Simplify hwcaps power set string construction Javier Pello
2022-09-06 7:35 ` [PATCH 0/4] elf: Fix hwcaps string size overestimation Florian Weimer
2022-09-06 18:12 ` Javier Pello
2022-09-08 11:23 ` Florian Weimer
2022-09-14 18:07 ` [PATCH 0/6] Remove legacy hwcaps support Javier Pello
2022-09-14 18:08 ` [PATCH 1/6] elf: Remove legacy hwcaps support from the dynamic loader Javier Pello
2022-09-14 18:10 ` [PATCH 2/6] elf: Remove legacy hwcaps support from ldconfig Javier Pello
2022-09-14 18:10 ` [PATCH 3/6] elf: Remove hwcap parameter from add_to_cache signature Javier Pello
2022-09-14 18:12 ` [PATCH 4/6] elf: Remove hwcap and bits_hwcap fields from struct cache_entry Javier Pello
2022-09-14 18:13 ` [PATCH 5/6] elf: Remove _dl_string_hwcap Javier Pello
2022-09-14 18:15 ` [PATCH 6/6] elf: Simplify output of hwcap subdirectories in ld.so help Javier Pello
2022-09-15 8:42 ` Carlos O'Donell
2022-09-15 19:12 ` Javier Pello
2022-09-14 21:23 ` [PATCH 0/6] Remove legacy hwcaps support Joseph Myers
2022-09-17 14:17 ` [PATCH v2 " Javier Pello
2022-09-17 14:18 ` [PATCH v2 1/6] elf: Remove legacy hwcaps support from the dynamic loader Javier Pello
2022-09-22 11:46 ` Florian Weimer
2022-09-17 14:19 ` [PATCH v2 2/6] elf: Remove legacy hwcaps support from ldconfig Javier Pello
2022-09-22 12:14 ` Florian Weimer
2022-09-17 14:20 ` [PATCH v2 3/6] elf: Remove hwcap parameter from add_to_cache signature Javier Pello
2022-09-22 16:02 ` Florian Weimer
2022-09-17 14:22 ` [PATCH v2 4/6] elf: Remove hwcap and bits_hwcap fields from struct cache_entry Javier Pello
2022-09-22 16:03 ` Florian Weimer
2022-09-17 14:23 ` [PATCH v2 5/6] elf: Remove _dl_string_hwcap Javier Pello
2022-09-17 14:24 ` [PATCH v2 6/6] elf: Simplify output of hwcap subdirectories in ld.so help Javier Pello
2022-09-21 16:26 ` [PATCH v2 0/6] Remove legacy hwcaps support Joseph Myers
2022-09-27 18:03 ` [PATCH v3 0/8] " Javier Pello
2022-09-27 18:05 ` [PATCH v3 1/8] x86_64: Remove platform directory library loading test Javier Pello
2022-10-03 14:56 ` Adhemerval Zanella Netto
2022-10-04 17:53 ` Javier Pello
2022-10-04 17:59 ` Adhemerval Zanella Netto
2022-09-27 18:05 ` [PATCH v3 2/8] elf: Remove legacy hwcaps support from the dynamic loader Javier Pello
2022-09-27 18:06 ` [PATCH v3 3/8] elf: Remove legacy hwcaps support from ldconfig Javier Pello
2022-10-03 15:31 ` Adhemerval Zanella Netto
2022-09-27 18:07 ` [PATCH v3 4/8] elf: Remove hwcap parameter from add_to_cache signature Javier Pello
2022-09-27 18:08 ` [PATCH v3 5/8] elf: Remove hwcap and bits_hwcap fields from struct cache_entry Javier Pello
2022-09-27 18:08 ` [PATCH v3 6/8] Add NEWS entry for legacy hwcaps removal Javier Pello
2022-10-03 15:44 ` Adhemerval Zanella Netto
2022-10-03 19:29 ` Andreas Schwab
2022-10-03 19:49 ` Adhemerval Zanella Netto
2022-10-03 19:59 ` Florian Weimer
2022-10-04 18:00 ` Adhemerval Zanella Netto
2022-10-05 18:12 ` Javier Pello
2022-10-06 11:03 ` Adhemerval Zanella Netto
2022-09-27 18:09 ` [PATCH v3 7/8] elf: Remove _dl_string_hwcap Javier Pello
2022-10-03 16:52 ` Adhemerval Zanella Netto
2022-09-27 18:10 ` [PATCH v3 8/8] elf: Simplify output of hwcap subdirectories in ld.so help Javier Pello
2022-10-03 17:02 ` Adhemerval Zanella Netto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874jxi8945.fsf@oldenburg.str.redhat.com \
--to=fweimer@redhat.com \
--cc=devel@otheo.eu \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).