1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00

trigger: remove check of NULL pointers before calling free() (issue #865)

This commit is contained in:
Sébastien Helleu
2024-04-24 23:55:43 +02:00
parent 0e3b6a9c77
commit ea85d180e5
5 changed files with 31 additions and 62 deletions
+1 -2
View File
@@ -287,8 +287,7 @@ trigger_buffer_hashtable_map_cb (void *data,
weechat_color ("reset"),
(value_no_color) ? value_no_color : (const char *)value,
weechat_color ("chat_delimiters"));
if (value_no_color)
free (value_no_color);
free (value_no_color);
}
else if (strcmp (value_type, "pointer") == 0)
{
+7 -14
View File
@@ -271,8 +271,7 @@ trigger_callback_check_conditions (struct t_trigger *trigger,
extra_vars,
trigger_callback_hashtable_options_conditions);
rc = (value && (strcmp (value, "1") == 0));
if (value)
free (value);
free (value);
return rc;
}
@@ -347,10 +346,8 @@ trigger_callback_regex_translate_chars (struct t_trigger_context *context,
value = weechat_string_translate_chars (text, chars1_eval, chars2_eval);
if (chars1_eval)
free (chars1_eval);
if (chars2_eval)
free (chars2_eval);
free (chars1_eval);
free (chars2_eval);
return value;
}
@@ -706,8 +703,7 @@ trigger_callback_signal_cb (const void *pointer, void *data,
weechat_hashtable_set (ctx.pointers, "irc_channel", ptr_irc_channel);
}
}
if (irc_server_name)
free (irc_server_name);
free (irc_server_name);
/* create hashtable (if not already created) */
if (!ctx.extra_vars)
@@ -987,8 +983,7 @@ end:
if (tags)
weechat_string_free_split (tags);
if (string_no_color)
free (string_no_color);
free (string_no_color);
TRIGGER_CALLBACK_CB_END(string_modified);
}
@@ -1058,15 +1053,13 @@ trigger_callback_line_cb (const void *pointer, void *data,
ptr_value = weechat_hashtable_get (line, "prefix");
string_no_color = weechat_string_remove_color (ptr_value, NULL);
weechat_hashtable_set (ctx.extra_vars, "tg_prefix_nocolor", string_no_color);
if (string_no_color)
free (string_no_color);
free (string_no_color);
/* build message without colors */
ptr_value = weechat_hashtable_get (line, "message");
string_no_color = weechat_string_remove_color (ptr_value, NULL);
weechat_hashtable_set (ctx.extra_vars, "tg_message_nocolor", string_no_color);
if (string_no_color)
free (string_no_color);
free (string_no_color);
if (!trigger_callback_set_tags (ctx.buffer, (const char **)tags, num_tags,
ctx.extra_vars))
+9 -18
View File
@@ -568,10 +568,8 @@ trigger_command_rename (struct t_trigger *trigger, const char *new_name)
}
end:
if (name)
free (name);
if (name2)
free (name2);
free (name);
free (name2);
}
/*
@@ -892,18 +890,12 @@ trigger_command_trigger (const void *pointer, void *data,
arg_command,
arg_return_code,
arg_post_action);
if (arg_arguments)
free (arg_arguments);
if (arg_conditions)
free (arg_conditions);
if (arg_regex)
free (arg_regex);
if (arg_command)
free (arg_command);
if (arg_return_code)
free (arg_return_code);
if (arg_post_action)
free (arg_post_action);
free (arg_arguments);
free (arg_conditions);
free (arg_regex);
free (arg_command);
free (arg_return_code);
free (arg_post_action);
if (input)
{
if (weechat_strcmp (argv[1], "output") == 0)
@@ -1121,8 +1113,7 @@ trigger_command_trigger (const void *pointer, void *data,
weechat_printf_date_tags (NULL, 0, "no_trigger",
_("Trigger \"%s\" removed"),
name);
if (name)
free (name);
free (name);
}
}
ptr_trigger = ptr_next_trigger;
+1 -2
View File
@@ -532,8 +532,7 @@ trigger_config_use_temp_triggers ()
{
next_temp_trigger = triggers_temp->next_trigger;
if (triggers_temp->name)
free (triggers_temp->name);
free (triggers_temp->name);
free (triggers_temp);
triggers_temp = next_temp_trigger;
+13 -26
View File
@@ -460,14 +460,10 @@ trigger_hook (struct t_trigger *trigger)
(eval_completion) ? eval_completion : "",
&trigger_callback_command_cb,
trigger, NULL);
if (eval_desc)
free (eval_desc);
if (eval_args)
free (eval_args);
if (eval_desc_args)
free (eval_desc_args);
if (eval_completion)
free (eval_completion);
free (eval_desc);
free (eval_args);
free (eval_desc_args);
free (eval_completion);
if (extra_vars)
weechat_hashtable_free (extra_vars);
}
@@ -626,19 +622,15 @@ trigger_regex_free (int *regex_count, struct t_trigger_regex **regex)
{
for (i = 0; i < *regex_count; i++)
{
if ((*regex)[i].variable)
free ((*regex)[i].variable);
if ((*regex)[i].str_regex)
free ((*regex)[i].str_regex);
free ((*regex)[i].variable);
free ((*regex)[i].str_regex);
if ((*regex)[i].regex)
{
regfree ((*regex)[i].regex);
free ((*regex)[i].regex);
}
if ((*regex)[i].replace)
free ((*regex)[i].replace);
if ((*regex)[i].replace_escaped)
free ((*regex)[i].replace_escaped);
free ((*regex)[i].replace);
free ((*regex)[i].replace_escaped);
}
free (*regex);
*regex = NULL;
@@ -758,8 +750,7 @@ trigger_regex_split (const char *str_regex,
/* set regex (command "s" only) */
if (command == TRIGGER_REGEX_COMMAND_REPLACE)
{
if (str_regex_escaped)
free (str_regex_escaped);
free (str_regex_escaped);
str_regex_escaped = weechat_string_convert_escaped_chars ((*regex)[index].str_regex);
if (!str_regex_escaped)
goto memory_error;
@@ -837,10 +828,8 @@ memory_error:
goto end;
end:
if (delimiter)
free (delimiter);
if (str_regex_escaped)
free (str_regex_escaped);
free (delimiter);
free (str_regex_escaped);
if (rc < 0)
trigger_regex_free (regex_count, regex);
@@ -1171,8 +1160,7 @@ trigger_rename (struct t_trigger *trigger, const char *name)
}
}
if (trigger->name)
free (trigger->name);
free (trigger->name);
trigger->name = strdup (name);
free (option_name);
@@ -1243,8 +1231,7 @@ trigger_free (struct t_trigger *trigger)
/* free data */
trigger_unhook (trigger);
trigger_regex_free (&trigger->regex_count, &trigger->regex);
if (trigger->name)
free (trigger->name);
free (trigger->name);
for (i = 0; i < TRIGGER_NUM_OPTIONS; i++)
{
if (trigger->options[i])