[binutils] Fix seg fault in sec_merge_emit(). (BZ 623687)

Nicholas Clifton nickc at fedoraproject.org
Fri Aug 20 12:03:31 UTC 2010


commit fa26cbc678d60fcaa4eae04cde261228d61782d7
Author: Nick Clifton <nickc at redhat.com>
Date:   Fri Aug 20 13:03:04 2010 +0100

    Fix seg fault in sec_merge_emit().  (BZ 623687)

 binutils-2.20.51.0.10-sec-merge-emit.patch |   24 ++++++++++++++++++++++++
 binutils.spec                              |    7 ++++++-
 2 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/binutils-2.20.51.0.10-sec-merge-emit.patch b/binutils-2.20.51.0.10-sec-merge-emit.patch
new file mode 100644
index 0000000..388e143
--- /dev/null
+++ b/binutils-2.20.51.0.10-sec-merge-emit.patch
@@ -0,0 +1,24 @@
+*** ../binutils-2.20.51.0.10.orig/bfd/merge.c	2010-08-20 12:19:33.000000000 +0100
+--- bfd/merge.c	2010-08-20 12:18:01.000000000 +0100
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 307,312 ****
+--- 307,315 ----
+        len = -off & (entry->alignment - 1);
+        if (len != 0)
+  	{
++ 	  /* We should never have an entry with an alignment
++ 	     greater than the section's alignment.  */
++ 	  BFD_ASSERT (len <= (bfd_size_type) (1 << alignment_power));
+  	  if (bfd_bwrite (pad, len, abfd) != len)
+  	    goto err;
+  	  off += len;
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 324,329 ****
+--- 327,333 ----
+    /* Trailing alignment needed?  */
+    off = sec->size - off;
+    if (off != 0
++       && alignment_power
+        && bfd_bwrite (pad, off, abfd) != off)
+      goto err;
+  
diff --git a/binutils.spec b/binutils.spec
index 8fdeb1a..905b4e6 100644
--- a/binutils.spec
+++ b/binutils.spec
@@ -17,7 +17,7 @@
 Summary: A GNU collection of binary utilities
 Name: %{?cross}binutils%{?_with_debug:-debug}
 Version: 2.20.51.0.10
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv3+
 Group: Development/Tools
 URL: http://sources.redhat.com/binutils
@@ -32,6 +32,7 @@ Patch06: binutils-2.20.51.0.2-set-long-long.patch
 Patch07: binutils-2.20.51.0.2-build-id.patch
 Patch08: binutils-2.20.51.0.10-copy-osabi.patch
 Patch09: binutils-2.20.51.0.10-update-gold.patch
+Patch10: binutils-2.20.51.0.10-sec-merge-emit.patch
 
 %define gold_arches %ix86 x86_64
 
@@ -131,6 +132,7 @@ using libelf instead of BFD.
 %patch07 -p0 -b .build-id~
 %patch08 -p0 -b .copy-osabi~
 %patch09 -p0 -b .update-gold~
+%patch10 -p0 -b .sec-merge-emit~
 
 # We cannot run autotools as there is an exact requirement of autoconf-2.59.
 
@@ -413,6 +415,9 @@ exit 0
 %endif # %{isnative}
 
 %changelog
+* Fri Aug  20 2010 Nick Clifton <nickc at redhat.com> - 2.20.51.0.10-2
+- Fix seg fault in sec_merge_emit().  (BZ 623687)
+
 * Tue Aug  10 2010 Nick Clifton <nickc at redhat.com> - 2.20.51.0.10-1
 - Rebase on 2.20.51.0.10 tarball.
 - Import GOLD sources from binutils mainline as of 10 Aug 2010. 


More information about the scm-commits mailing list