XCOFF uninitialized read
Alan Modra
amodra@gmail.com
Fri Mar 20 02:08:54 GMT 2020
* coff-rs6000.c (_bfd_xcoff_slurp_armap): Ensure size is large
enough to read number of symbols.
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 2dd68e08c3..bf87596a4f 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1260,9 +1260,9 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
return FALSE;
GET_VALUE_IN_FIELD (sz, hdr.size, 10);
- if (sz == (bfd_size_type) -1)
+ if (sz + 1 < 5)
{
- bfd_set_error (bfd_error_no_memory);
+ bfd_set_error (bfd_error_bad_value);
return FALSE;
}
@@ -1322,9 +1322,9 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
return FALSE;
GET_VALUE_IN_FIELD (sz, hdr.size, 10);
- if (sz == (bfd_size_type) -1)
+ if (sz + 1 < 9)
{
- bfd_set_error (bfd_error_no_memory);
+ bfd_set_error (bfd_error_bad_value);
return FALSE;
}
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list