x86: Simplify bad return in get_synthetic_symtab
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 29 Aug 2017 18:28:10 +0000 (11:28 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 29 Aug 2017 18:28:10 +0000 (11:28 -0700)
* elf32-i386.c (elf_i386_get_synthetic_symtab): Simplify bad
return.
* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.

bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c

index 21b01b7f398f7f6c3d40aa31969afac654e680b3..71b96dddbd263401549658eefe70763405ba29a1 100644 (file)
@@ -1,3 +1,9 @@
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_get_synthetic_symtab): Simplify bad
+       return.
+       * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
 2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf32-i386.c (elf_i386_get_synthetic_symtab): Check valid PLT
index 31ef02a568e8292971d2c462b0f9602717cb24f2..2826272e0648866c905db8c22c119a9311fd0a6d 100644 (file)
@@ -6504,14 +6504,7 @@ elf_i386_get_synthetic_symtab (bfd *abfd,
 
   s = *ret = (asymbol *) bfd_zmalloc (size);
   if (s == NULL)
-    {
-bad_return:
-      for (j = 0; plts[j].name != NULL; j++)
-       if (plts[j].contents != NULL)
-         free (plts[j].contents);
-      free (dynrelbuf);
-      return -1;
-    }
+    goto bad_return;
 
   if (got_addr)
     {
@@ -6639,9 +6632,12 @@ bad_return:
 
   /* PLT entries with R_386_TLS_DESC relocations are skipped.  */
   if (n == 0)
-    goto bad_return;
-
-  count = n;
+    {
+bad_return:
+      count = -1;
+    }
+  else
+    count = n;
 
   for (j = 0; plts[j].name != NULL; j++)
     if (plts[j].contents != NULL)
index ba7c5953c3ccda4165f6e5bb0e8b3b66d0b0a7eb..847a18280245c4ee97bdc6dc461bec1ac7e339f6 100644 (file)
@@ -6896,14 +6896,7 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
 
   s = *ret = (asymbol *) bfd_zmalloc (size);
   if (s == NULL)
-    {
-bad_return:
-      for (j = 0; plts[j].name != NULL; j++)
-       if (plts[j].contents != NULL)
-         free (plts[j].contents);
-      free (dynrelbuf);
-      return -1;
-    }
+    goto bad_return;
 
   /* Check for each PLT section.  */
   names = (char *) (s + count);
@@ -7014,9 +7007,12 @@ bad_return:
 
   /* PLT entries with R_X86_64_TLSDESC relocations are skipped.  */
   if (n == 0)
-    goto bad_return;
-
-  count = n;
+    {
+bad_return:
+      count = -1;
+    }
+  else
+    count = n;
 
   for (j = 0; plts[j].name != NULL; j++)
     if (plts[j].contents != NULL)