From: Alexandre Oliva Date: Sat, 6 Jun 2020 01:31:19 +0000 (-0300) Subject: [PR95456] avoid memcpy (_, NULL, 0) in gcc.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e6a6644db0ef0f369df4e5b1b337122d84c1a39;p=gcc.git [PR95456] avoid memcpy (_, NULL, 0) in gcc.c Some newly-added code in gcc.c might call memcpy with a NULL source pointer and zero-length inputs. Avoid such calls by rearranging the code a little. for gcc/ChangeLog PR driver/95456 * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0). --- diff --git a/gcc/gcc.c b/gcc/gcc.c index e2362175f40..c0eb3c10cfd 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -6024,19 +6024,19 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) } temp_filename_length = dumpdir_length + suffix_length + 1; - if (!outbase_length) - temp_filename_length += basename_length; - else + if (outbase_length) temp_filename_length += outbase_length; + else + temp_filename_length += basename_length; tmp = (char *) alloca (temp_filename_length); if (dumpdir_length) memcpy (tmp, dumpdir, dumpdir_length); - if (!outbase_length) - memcpy (tmp + dumpdir_length, input_basename, - basename_length); - else + if (outbase_length) memcpy (tmp + dumpdir_length, outbase, outbase_length); + else if (basename_length) + memcpy (tmp + dumpdir_length, input_basename, + basename_length); memcpy (tmp + temp_filename_length - suffix_length - 1, suffix, suffix_length); if (adjusted_suffix)