resbin: don't pass NULL as printf %s arg

Alan Modra amodra@gmail.com
Sat Aug 2 00:49:13 GMT 2025


Commit c6c8d0b82175 went completely the wrong way.  "key" needs to be
NULL as that reads a different type of data.

	PR 33244
	* resbin.c (get_version_header): Don't pass a NULL key on to
	toosmall.
	(bin_to_res_version): Restore NULL key cases.

diff --git a/binutils/resbin.c b/binutils/resbin.c
index 889126e9e32..fa77cd43d23 100644
--- a/binutils/resbin.c
+++ b/binutils/resbin.c
@@ -1052,7 +1052,7 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
 {
   if (length < 8)
     {
-      toosmall (key);
+      toosmall (key ? key : _("version header"));
       return false;
     }
 
@@ -1250,7 +1250,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
 
 	      vst = res_alloc (sizeof (rc_ver_stringtable));
 
-	      if (!get_version_header (wrbfd, data, length, "version stringtable",
+	      if (!get_version_header (wrbfd, data, length, NULL,
 				       &vst->language, &stverlen, &vallen,
 				       &type, &off))
 		return NULL;
@@ -1284,7 +1284,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
 
 		  vs = res_alloc (sizeof (rc_ver_stringinfo));
 
-		  if (!get_version_header (wrbfd, data, length, "version string",
+		  if (!get_version_header (wrbfd, data, length, NULL,
 					   &vs->key, &sverlen, &vallen,
 					   &type, &off))
 		    return NULL;
@@ -1348,7 +1348,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
 	  data += off;
 	  length -= off;
 
-	  if (!get_version_header (wrbfd, data, length, "version varfileinfo",
+	  if (!get_version_header (wrbfd, data, length, NULL,
 				   &vi->u.var.key, &verlen, &vallen,
 				   &type, &off))
 	    return NULL;

-- 
Alan Modra


More information about the Binutils mailing list