Fix infinite loop when processing rpath tokens.
[deliverable/binutils-gdb.git] / bfd / pei-x86_64.c
index aa90b6fa7b4bc8b72772e57c8583c8fb574d6585..1e628c87f0ab7191fdd53c1ef4bea22a7dc2b4b4 100644 (file)
@@ -487,6 +487,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
   stop = pei_section_data (abfd, pdata_section)->virt_size;
   if ((stop % onaline) != 0)
     fprintf (file,
+            /* xgettext:c-format */
             _("Warning: %s section size (%ld) is not a multiple of %d\n"),
             pdata_section->name, (long) stop, onaline);
 
@@ -508,6 +509,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
   else if (datasize < stop)
       {
        fprintf (file,
+                /* xgettext:c-format */
                 _("Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"),
                 pdata_section->name, (unsigned long) datasize,
                 (unsigned long) stop);
@@ -602,7 +604,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
   if (strcmp (pdata_section->name, ".pdata") != 0)
     {
       size_t len = strlen (pdata_section->name);
-      char *xdata_name = alloca (len + 1);
+      char *xdata_name = xmalloc (len + 1);
 
       xdata_name = memcpy (xdata_name, pdata_section->name, len + 1);
       /* Transform .pdata prefix into .xdata prefix.  */
@@ -610,6 +612,7 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
        xdata_name [1] = 'x';
       xdata_section = pex64_get_section_by_rva (abfd, xdata_base,
                                                xdata_name);
+      free (xdata_name);
     }
   /* Second, try the .xdata section itself.  */
   if (!xdata_section)
This page took 0.033707 seconds and 4 git commands to generate.