[binutils-gdb] Sanity check section size in bfd_init_section_compress_status

Alan Modra amodra@sourceware.org
Wed Mar 29 02:50:05 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=aec101ab06697221d2bc2f82b3a65fb92054ed9f

commit aec101ab06697221d2bc2f82b3a65fb92054ed9f
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Mar 29 12:45:16 2023 +1030

    Sanity check section size in bfd_init_section_compress_status
    
    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:
---
 bfd/compress.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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;


More information about the Binutils-cvs mailing list