[PATCH 1/7] x86: don't leak sub-architecture accumulated strings

H.J. Lu hjl.tools@gmail.com
Fri Jul 1 19:44:42 GMT 2022


On Fri, Jul 1, 2022 at 3:18 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> On 01.07.2022 00:54, H.J. Lu wrote:
> > On Thu, Jun 30, 2022 at 5:53 AM Jan Beulich <jbeulich@suse.com> wrote:
> >> --- a/gas/config/tc-i386.c
> >> +++ b/gas/config/tc-i386.c
> >> @@ -2871,6 +2871,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED
> >>                   check_cpu_arch_compatible (string, cpu_arch[j].flags);
> >>
> >>                   cpu_arch_name = cpu_arch[j].name;
> >> +                 xfree (cpu_sub_arch_name);
> >>                   cpu_sub_arch_name = NULL;
> >>                   cpu_arch_flags = cpu_arch[j].flags;
> >>                   if (flag_code == CODE_64BIT)
> >> @@ -13406,6 +13407,7 @@ md_parse_option (int c, const char *arg)
> >>                     continue;
> >>
> >>                   cpu_arch_name = cpu_arch[j].name;
> >> +                 xfree (cpu_sub_arch_name);
> >>                   cpu_sub_arch_name = NULL;
> >>                   cpu_arch_flags = cpu_arch[j].flags;
> >>                   cpu_arch_isa = cpu_arch[j].type;
> >> @@ -14086,6 +14088,7 @@ i386_target_format (void)
> >>         {
> >>           static const i386_cpu_flags iamcu_flags = CPU_IAMCU_FLAGS;
> >>           cpu_arch_name = "iamcu";
> >> +         xfree (cpu_sub_arch_name);
> >>           cpu_sub_arch_name = NULL;
> >>           cpu_arch_flags = iamcu_flags;
> >>           cpu_arch_isa = PROCESSOR_IAMCU;
> >>
> >
> > Can we just use free?
>
> In principle yes, but I view using free() as inconsistent when the
> allocation used xmalloc() or alike. These should pair, even if right
> now xfree() simply aliases to free() - this could change down the
> road, and then cause unnecessary code churn just to update all such
> instances.
>

I don't think we will change xfree.  Just use free directly.

Thanks.

-- 
H.J.


More information about the Binutils mailing list