public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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


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