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)
{
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;