From: H.J. Lu Date: Fri, 20 Jun 2025 22:36:56 +0000 (+0800) Subject: objcopy: Don't extend the output section size X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=08c3cbe5926e4d355b5cb70bbec2b1eeb40c2944;p=thirdparty%2Fbinutils-gdb.git objcopy: Don't extend the output section size Since the output section contents are copied from the input, don't extend the output section size beyond the input section size. PR binutils/33049 * objcopy.c (copy_section): Don't extend the output section size beyond the input section size. Signed-off-by: H.J. Lu --- diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 366e1079d82..2e98ba44c01 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -4650,6 +4650,7 @@ copy_section (bfd *ibfd, sec_ptr isection, bfd *obfd) char *to = (char *) memhunk; char *end = (char *) memhunk + size; int i; + bfd_size_type memhunk_size = size; /* If the section address is not exactly divisible by the interleave, then we must bias the from address. If the copy_byte is less than @@ -4669,6 +4670,11 @@ copy_section (bfd *ibfd, sec_ptr isection, bfd *obfd) } size = (size + interleave - 1 - copy_byte) / interleave * copy_width; + + /* Don't extend the output section size. */ + if (size > memhunk_size) + size = memhunk_size; + osection->lma /= interleave; if (copy_byte < extra) osection->lma++;