From: Alan Modra Date: Sat, 2 Aug 2025 00:42:21 +0000 (+0930) Subject: Re: resbin: don't pass NULL as printf %s arg X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=891d1654d7314fa520f708dbc5f1bf855d15bd40;p=thirdparty%2Fbinutils-gdb.git Re: resbin: don't pass NULL as printf %s arg 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;