diff options
author | Martin Liska <mliska@suse.cz> | 2021-02-10 13:21:22 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-02-12 10:25:06 +0100 |
commit | bc6087c57540bfdcde533bc90197b6553fb8003c (patch) | |
tree | aaf485ebda0cecbd8486487d224311e34a042604 | |
parent | cf059e1c099ed45c97f740c030dcb8e146ac7d4a (diff) | |
download | gcc-bc6087c57540bfdcde533bc90197b6553fb8003c.zip gcc-bc6087c57540bfdcde533bc90197b6553fb8003c.tar.gz gcc-bc6087c57540bfdcde533bc90197b6553fb8003c.tar.bz2 |
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.
-rw-r--r-- | gcc/opts-common.c | 1 | ||||
-rw-r--r-- | gcc/opts.c | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/opts-common.c b/gcc/opts-common.c index 6cb5602..5e10ede 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 @@ -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 |