[PATCH] bfd: sframe: fix PR ld/33199

Jan Beulich jbeulich@suse.com
Thu Aug 14 06:11:08 GMT 2025


On 14.08.2025 07:14, Indu Bhagat via Binutils wrote:
> Fix PR ld/33199 SEGV in _bfd_x86_elf_create_sframe_plt
> 
> Currently, the selection for sframe_plt was not being done (and simply
> set to NULL) for the case when !normal_target, causing SEGV on Solaris.
> Initialize sframe_plt to init_table->sframe_lazy_plt when lazy_plt is
> true, and NULL otherwise.  This is in line with htab->non_lazy_plt being
> set to NULL for !normal_target.
> 
> bfd/
> 	PR ld/33199
> 	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties):
> 	Setup sframe_plt for !normal_target.

Okay, albeit preferably with ...

> --- a/bfd/elfxx-x86.c
> +++ b/bfd/elfxx-x86.c
> @@ -4605,7 +4605,12 @@ _bfd_x86_elf_link_setup_gnu_properties
>  	}
>      }
>    else
> -    htab->sframe_plt = NULL;
> +    {
> +      if (lazy_plt)
> +	htab->sframe_plt = init_table->sframe_lazy_plt;
> +      else
> +	htab->sframe_plt = NULL;
> +    }

... no extra scope used here, i.e. if becoming "else if (lazy_plt)". Makes
for a smaller diff and less indentation overall.

Jan


More information about the Binutils mailing list