[binutils-gdb] Fix erroroneous use of '%zu' in elfcore_grok_win32pstatus

Jon TURNEY jturney@sourceware.org
Mon Aug 24 17:06:55 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3cdad0846b5f37898798d4145e5b991900a46ec5

commit 3cdad0846b5f37898798d4145e5b991900a46ec5
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Fri Aug 21 16:30:00 2020 +0100

    Fix erroroneous use of '%zu' in elfcore_grok_win32pstatus
    
    As reported in [1], _bfd_error_handler() doesn't support '%zu'.
    
    module_name_size is always 32-bits in the data structure we are
    extracting it from, so use an unsigned int to store it instead.
    
    [1] https://sourceware.org/pipermail/gdb-patches/2020-August/171391.html
    
    bfd/ChangeLog:
    
    2020-08-21  Jon Turney  <jon.turney@dronecode.org.uk>
    
            * elf.c (elfcore_grok_win32pstatus): Change name_size to unsigned
            int. Use '%u' format with  _bfd_error_handler to render it.

Diff:
---
 bfd/ChangeLog | 5 +++++
 bfd/elf.c     | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ca79c4e5830..f2d18122bbc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2020-08-21  Jon Turney  <jon.turney@dronecode.org.uk>
+
+	* elf.c (elfcore_grok_win32pstatus): Change name_size to unsigned
+	int. Use '%u' format with  _bfd_error_handler to render it.
+
 2020-08-25  Alan Modra  <amodra@gmail.com>
 
 	PR 26489
diff --git a/bfd/elf.c b/bfd/elf.c
index ecd9217b34d..f32118ad404 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -10140,7 +10140,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
   char buf[30];
   char *name;
   size_t len;
-  size_t name_size;
+  unsigned int name_size;
   asection *sect;
   unsigned int type;
   int is_active_thread;
@@ -10248,7 +10248,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
 
       if (note->descsz < 12 + name_size)
         {
-          _bfd_error_handler (_("%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %zu"),
+          _bfd_error_handler (_("%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"),
                               abfd, note->descsz, name_size);
           return TRUE;
         }


More information about the Binutils-cvs mailing list