summaryrefslogtreecommitdiff
path: root/cross/binutils/patches/patch-al
blob: 0b567191c3de48aa70f9b010aad253a83e916c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$NetBSD: patch-al,v 1.3 2000/06/11 23:42:13 mycroft Exp $

--- bfd/elflink.h.orig	Fri May  1 11:48:10 1998
+++ bfd/elflink.h	Sun Jun 11 19:05:47 2000
@@ -719,12 +719,13 @@
 		}
 
 	      sz = bfd_section_size (abfd, s);
-	      msg = (char *) bfd_alloc (abfd, sz);
+	      msg = (char *) bfd_alloc (abfd, sz + 1);
 	      if (msg == NULL)
 		goto error_return;
 
 	      if (! bfd_get_section_contents (abfd, s, msg, (file_ptr) 0, sz))
 		goto error_return;
+	      msg[sz] = '\0';
 
 	      if (! (_bfd_generic_link_add_one_symbol
 		     (info, abfd, name, BSF_WARNING, s, (bfd_vma) 0, msg,
@@ -2726,11 +2727,13 @@
 	 We will build the contents of .dynsym and .hash when we build
 	 the final symbol table, because until then we do not know the
 	 correct value to give the symbols.  We built the .dynstr
-	 section as we went along in elf_link_add_object_symbols.  */
+	 section as we went along in elf_link_add_object_symbols.
+	 FIXME: We use bfd_zalloc() here because there may be holes
+	 where sections were deleted above.  */
       s = bfd_get_section_by_name (dynobj, ".dynsym");
       BFD_ASSERT (s != NULL);
       s->_raw_size = dynsymcount * sizeof (Elf_External_Sym);
-      s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
+      s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
       if (s->contents == NULL && s->_raw_size != 0)
 	return false;