[PATCH] gas/ELF: avoid below-base ref in obj_elf_parse_section_letters()

Alan Modra amodra@gmail.com
Sat Dec 18 10:41:13 GMT 2021


On Fri, Dec 17, 2021 at 09:18:18AM +0100, Jan Beulich via Binutils wrote:
> We would better be prepared for 'm' being the first character of the
> incoming string.
> 
> --- a/gas/config/obj-elf.c
> +++ b/gas/config/obj-elf.c
> @@ -860,6 +860,17 @@ obj_elf_parse_section_letters (char *str
>  	{
>  	case 'a':
>  	  attr |= SHF_ALLOC;
> +	  /* Compatibility.  */
> +	  if (len > 1 && str[1] == 'm')
> +	    {
> +	      attr |= SHF_MERGE;
> +	      str++, len--;
> +	      if (len > 1 && str[1] == 's')
> +		{
> +		  attr |= SHF_STRINGS;
> +		  str++, len--;
> +		}
> +	    }
>  	  break;
>  	case 'e':
>  	  attr |= SHF_EXCLUDE;
> @@ -894,19 +905,6 @@ obj_elf_parse_section_letters (char *str
>  	case '?':
>  	  *is_clone = true;
>  	  break;
> -	/* Compatibility.  */
> -	case 'm':
> -	  if (*(str - 1) == 'a')
> -	    {
> -	      attr |= SHF_MERGE;
> -	      if (len > 1 && str[1] == 's')
> -		{
> -		  attr |= SHF_STRINGS;
> -		  str++, len--;
> -		}
> -	      break;
> -	    }
> -	  /* Fall through.  */
>  	default:
>  	  {
>  	    const char *bad_msg = _("unrecognized .section attribute:"

OK.

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list