From: Martin Liska Date: Wed, 10 Feb 2021 12:21:22 +0000 (+0100) Subject: Fix producer string memory leaks X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc6087c57540bfdcde533bc90197b6553fb8003c;p=gcc.git Fix producer string memory leaks gcc/ChangeLog: * opts-common.c (decode_cmdline_option): Release werror_arg. * opts.c (gen_producer_string): Release output of gen_command_line_string. --- diff --git a/gcc/opts-common.c b/gcc/opts-common.c index 6cb5602896d..5e10edeb4cf 100644 --- a/gcc/opts-common.c +++ b/gcc/opts-common.c @@ -766,6 +766,7 @@ decode_cmdline_option (const char *const *argv, unsigned int lang_mask, werror_arg[0] = 'W'; size_t warning_index = find_opt (werror_arg, lang_mask); + free (werror_arg); if (warning_index != OPT_SPECIAL_unknown) { const struct cl_option *warning_option diff --git a/gcc/opts.c b/gcc/opts.c index fc5f61e13cc..24bb64198c8 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -3401,8 +3401,11 @@ char * gen_producer_string (const char *language_string, cl_decoded_option *options, unsigned int options_count) { - return concat (language_string, " ", version_string, " ", - gen_command_line_string (options, options_count), NULL); + char *cmdline = gen_command_line_string (options, options_count); + char *combined = concat (language_string, " ", version_string, " ", + cmdline, NULL); + free (cmdline); + return combined; } #if CHECKING_P