@@ -54,5 +54,6 @@ SRC_URI = "\
file://0022-CVE-2025-5245.patch \
file://0022-CVE-2025-5244.patch \
file://0023-CVE-2025-7546.patch \
+ file://0023-CVE-2025-7545.patch \
"
S = "${WORKDIR}/git"
new file mode 100644
@@ -0,0 +1,39 @@
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Sat, 21 Jun 2025 06:36:56 +0800
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h08c3cbe5926e4d355b5cb70bbec2b1eeb40c2944]
+CVE: CVE-2025-7545
+
+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: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+
+diff --git a/binutils/objcopy.c b/binutils/objcopy.c
+index a85d2620..18cd1bfd 100644
+--- a/binutils/objcopy.c
++++ b/binutils/objcopy.c
+@@ -4547,6 +4547,7 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
+ 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
+@@ -4566,6 +4567,11 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
+ }
+
+ 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++;