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

Commit c6c8d0b821 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.

(cherry picked from commit 891d1654d7)
This commit is contained in:
Alan Modra
2025-08-02 10:12:21 +09:30
parent 9d66db624e
commit b09f71c1c4

View File

@@ -1052,7 +1052,7 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
{ {
if (length < 8) if (length < 8)
{ {
toosmall (key); toosmall (key ? key : _("version header"));
return false; return false;
} }
@@ -1250,7 +1250,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
vst = res_alloc (sizeof (rc_ver_stringtable)); 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, &vst->language, &stverlen, &vallen,
&type, &off)) &type, &off))
return NULL; return NULL;
@@ -1284,7 +1284,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
vs = res_alloc (sizeof (rc_ver_stringinfo)); 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, &vs->key, &sverlen, &vallen,
&type, &off)) &type, &off))
return NULL; return NULL;
@@ -1348,7 +1348,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
data += off; data += off;
length -= 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, &vi->u.var.key, &verlen, &vallen,
&type, &off)) &type, &off))
return NULL; return NULL;