ubsan: _bfd_xcoff64_swap_aux_in left shift of negative value

Alan Modra amodra@gmail.com
Mon Oct 25 01:12:44 GMT 2021


	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Use bfd_vma for h.

diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 04e0798bf69..8c206959fd3 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -410,11 +410,8 @@ _bfd_xcoff64_swap_aux_in (bfd *abfd, void *ext1, int type ATTRIBUTE_UNUSED,
 	  if (auxtype != _AUX_CSECT)
 	    goto error;
 
-	  bfd_signed_vma h = 0;
-	  bfd_vma l = 0;
-
-	  h = H_GET_S32 (abfd, ext->x_csect.x_scnlen_hi);
-	  l = H_GET_32 (abfd, ext->x_csect.x_scnlen_lo);
+	  bfd_vma h = H_GET_S32 (abfd, ext->x_csect.x_scnlen_hi);
+	  bfd_vma l = H_GET_32 (abfd, ext->x_csect.x_scnlen_lo);
 
 	  in->x_csect.x_scnlen.l = h << 32 | (l & 0xffffffff);
 

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list