Sanity check section size in bfd_init_section_compress_status

Alan Modra amodra@gmail.com
Wed Mar 29 02:50:59 GMT 2023


This function doesn't just initialise for compression, it actually
compresses.  This patch sanity checks section size before allocating
buffers for the uncompressed contents.

	* compress.c (bfd_init_section_compress_status): Sanity check
	section size.

diff --git a/bfd/compress.c b/bfd/compress.c
index 39f9c50a445..844328b27a9 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -1065,7 +1065,8 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec)
       || sec->size == 0
       || sec->rawsize != 0
       || sec->contents != NULL
-      || sec->compress_status != COMPRESS_SECTION_NONE)
+      || sec->compress_status != COMPRESS_SECTION_NONE
+      || _bfd_section_size_insane (abfd, sec))
     {
       bfd_set_error (bfd_error_invalid_operation);
       return false;

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list