30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- binutils.orig/bfd/elf.c	2023-10-13 11:38:25.159530287 +0100
 | |
| +++ binutils-2.41/bfd/elf.c	2023-10-13 11:41:23.290898228 +0100
 | |
| @@ -9479,6 +9479,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 | |
|  	  if (elf_use_dt_symtab_p (abfd))
 | |
|  	    iverneed->vn_filename
 | |
|  	      = elf_tdata (abfd)->dt_strtab + iverneed->vn_file;
 | |
| +	  else if (hdr == NULL)
 | |
| +	    goto error_return_bad_verref;
 | |
|  	  else
 | |
|  	    iverneed->vn_filename
 | |
|  	      = bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
 | |
| @@ -9516,6 +9518,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 | |
|  	      if (elf_use_dt_symtab_p (abfd))
 | |
|  		ivernaux->vna_nodename
 | |
|  		  = elf_tdata (abfd)->dt_strtab + ivernaux->vna_name;
 | |
| +	      else if (hdr == NULL)
 | |
| +		goto error_return_bad_verref;
 | |
|  	      else
 | |
|  		ivernaux->vna_nodename
 | |
|  		  = bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
 | |
| @@ -9546,7 +9550,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 | |
|  	  iverneed->vn_nextref = NULL;
 | |
|  	  if (iverneed->vn_next == 0)
 | |
|  	    break;
 | |
| -	  if (i + 1 < hdr->sh_info)
 | |
| +	  if (hdr != NULL && (i + 1 < hdr->sh_info))
 | |
|  	    iverneed->vn_nextref = iverneed + 1;
 | |
|  
 | |
|  	  if (iverneed->vn_next
 |