1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-24 11:56:38 +02:00

core, plugins: set error to NULL before calling strtol()

This is not strictly necessary, just in case the function strtol() doesn't
update the pointer.
This commit is contained in:
Sébastien Helleu
2023-11-01 14:17:15 +01:00
parent 08fbfcc203
commit 67bcbf5256
15 changed files with 40 additions and 0 deletions
+1
View File
@@ -146,6 +146,7 @@ hook_process_hashtable (struct t_weechat_plugin *plugin,
ptr_value = hashtable_get (options, "buffer_flush");
if (ptr_value && ptr_value[0])
{
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0]
&& (number >= 1) && (number <= HOOK_PROCESS_BUFFER_SIZE))
+3
View File
@@ -739,6 +739,7 @@ COMMAND_CALLBACK(buffer)
else
{
ptr_buffer = gui_buffer_search_by_number_or_name (argv[i]);
error = NULL;
(void) strtol (argv[i], &error, 10);
clear_number = (error && !error[0]);
}
@@ -974,6 +975,7 @@ COMMAND_CALLBACK(buffer)
ptr_buffer = gui_buffer_search_by_number_or_name (argv[i]);
if (ptr_buffer)
{
error = NULL;
(void) strtol (argv[i], &error, 10);
if (error && !error[0])
{
@@ -1012,6 +1014,7 @@ COMMAND_CALLBACK(buffer)
ptr_buffer = gui_buffer_search_by_number_or_name (argv[i]);
if (ptr_buffer)
{
error = NULL;
(void) strtol (argv[i], &error, 10);
if (error && !error[0])
{
+1
View File
@@ -3258,6 +3258,7 @@ config_file_parse_version (const char *version)
if (!version)
return -1;
error = NULL;
number = strtoll (version, &error, 10);
if (!error || error[0])
return -1;
+11
View File
@@ -413,6 +413,7 @@ eval_string_cut (const char *text, int screen)
if (!tmp)
return strdup ("");
error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
{
@@ -453,6 +454,7 @@ eval_string_repeat (const char *text)
if (!tmp)
return strdup ("");
error = NULL;
number = strtol (tmp, &error, 10);
if (!error || error[0] || (number < 0))
{
@@ -538,6 +540,7 @@ eval_string_split (const char *text)
}
else
{
error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
goto end;
@@ -578,6 +581,7 @@ eval_string_split (const char *text)
}
else if (strncmp (list_flags[i], "max_items=", 10) == 0)
{
error = NULL;
max_items = strtol (list_flags[i] + 10, &error, 10);
if (!error || error[0] || (max_items < 0))
goto end;
@@ -686,6 +690,7 @@ eval_string_split_shell (const char *text)
}
else
{
error = NULL;
number = strtol (str_number, &error, 10);
if (!error || error[0] || (number == 0))
goto end;
@@ -766,6 +771,7 @@ eval_string_regex_group (const char *text, struct t_eval_context *eval_context)
}
else
{
error = NULL;
number = strtol (text, &error, 10);
if (!error || error[0])
number = -1;
@@ -897,6 +903,7 @@ eval_string_base_encode (const char *text)
if (!base)
goto end;
error = NULL;
number = strtol (base, &error, 10);
if (!error || error[0])
goto end;
@@ -946,6 +953,7 @@ eval_string_base_decode (const char *text)
if (!base)
goto end;
error = NULL;
number = strtol (base, &error, 10);
if (!error || error[0])
goto end;
@@ -1087,6 +1095,7 @@ eval_string_random (const char *text)
tmp = string_strndup (text, pos - text);
if (!tmp)
goto error;
error = NULL;
min_number = strtoll (tmp, &error, 10);
if (!error || error[0])
{
@@ -1095,6 +1104,7 @@ eval_string_random (const char *text)
}
free (tmp);
error = NULL;
max_number = strtoll (pos + 1, &error, 10);
if (!error || error[0])
goto error;
@@ -2616,6 +2626,7 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
ptr_value = hashtable_get (options, "debug");
if (ptr_value && ptr_value[0])
{
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0] && (number >= 1))
{
+1
View File
@@ -3343,6 +3343,7 @@ string_parse_size (const char *size)
if (!str_number)
goto end;
error = NULL;
number = strtoll (str_number, &error, 10);
if (!error || error[0])
goto end;
+4
View File
@@ -2213,6 +2213,7 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '-')
{
/* move the unread marker N lines towards the first line */
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number < 0))
{
@@ -2240,6 +2241,7 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else if (argument[0] == '+')
{
/* move the unread marker N lines towards the last line */
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{
@@ -2265,6 +2267,7 @@ gui_buffer_set_unread (struct t_gui_buffer *buffer, const char *argument)
else
{
/* move the unread marker N lines from the end towards the first line */
error = NULL;
number = strtol (argument, &error, 10);
if (error && !error[0] && (number > 0))
{
@@ -2953,6 +2956,7 @@ gui_buffer_search_by_number_or_name (const char *string)
ptr_buffer = NULL;
error = NULL;
number = strtol (string, &error, 10);
if (error && !error[0])
{
+1
View File
@@ -1079,6 +1079,7 @@ gui_chat_hsignal_quote_line_cb (const void *pointer, void *data,
hashtable_get (hashtable, "_chat_line_date") : NULL;
if (date)
{
error = NULL;
number = strtol (date, &error, 10);
if (error && !error[0])
{
+3
View File
@@ -62,6 +62,7 @@ buflist_focus_cb (const void *pointer, void *data, struct t_hashtable *info)
ptr_bar_item_line = weechat_hashtable_get (info, "_bar_item_line");
if (!ptr_bar_item_line)
goto end;
error = NULL;
item_line = strtol (ptr_bar_item_line, &error, 10);
if (!error || error[0])
goto end;
@@ -250,9 +251,11 @@ buflist_hsignal_cb (const void *pointer, void *data, const char *signal,
return WEECHAT_RC_OK;
ptr_buffer = (struct t_gui_buffer *)value;
error = NULL;
number = strtol (ptr_number, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK;
error = NULL;
number2 = strtol (ptr_number2, &error, 10);
if (!error || error[0])
return WEECHAT_RC_OK;
+4
View File
@@ -281,6 +281,7 @@ irc_list_channel_match_filter (struct t_irc_server *server,
else if (strncmp (server->list->filter, "u:>", 3) == 0)
{
/* filter by users (> N)*/
error = NULL;
number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users > (int)number)
return 1;
@@ -288,6 +289,7 @@ irc_list_channel_match_filter (struct t_irc_server *server,
else if (strncmp (server->list->filter, "u:<", 3) == 0)
{
/* filter by users (< N)*/
error = NULL;
number = strtol (server->list->filter + 3, &error, 10);
if (error && !error[0] && channel->users < (int)number)
return 1;
@@ -295,6 +297,7 @@ irc_list_channel_match_filter (struct t_irc_server *server,
else if (strncmp (server->list->filter, "u:", 2) == 0)
{
/* filter by users */
error = NULL;
number = strtol (server->list->filter + 2, &error, 10);
if (error && !error[0] && channel->users >= (int)number)
return 1;
@@ -437,6 +440,7 @@ irc_list_parse_messages (struct t_irc_server *server, const char *output)
ptr_name++;
}
channel->name2 = strdup (ptr_name);
error = NULL;
number = strtol (params[2], &error, 10);
channel->users = (error && !error[0]) ? number : 0;
channel->topic = (num_params > 3) ?
+2
View File
@@ -625,6 +625,7 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
ptr_value = (const char *)weechat_hashtable_get (values, "max-bytes");
if (ptr_value)
{
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_bytes = number;
@@ -633,6 +634,7 @@ irc_message_parse_cap_multiline_value (struct t_irc_server *server,
ptr_value = (const char *)weechat_hashtable_get (values, "max-lines");
if (ptr_value)
{
error = NULL;
number = strtol (ptr_value, &error, 10);
if (error && !error[0])
server->multiline_max_lines = number;
+1
View File
@@ -341,6 +341,7 @@ irc_protocol_parse_time (const char *time)
pos = strchr (time2, ',');
if (pos)
pos[0] = '\0';
error = NULL;
value = strtol (time2, &error, 10);
if (error && !error[0] && (value >= 0))
time_value = (int)value;
+4
View File
@@ -462,6 +462,7 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
if (pos)
{
pos[0] = '\0';
error = NULL;
value = strtol (pos + 1, &error, 10);
if (!error || error[0])
value = -1;
@@ -1309,6 +1310,7 @@ irc_redirect_pattern_hsignal_cb (const void *pointer, void *data,
timeout = 0;
if (str_timeout && str_timeout[0])
{
error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number;
@@ -1379,6 +1381,7 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
count = 1;
if (str_count && str_count[0])
{
error = NULL;
number = (int)strtol (str_count, &error, 10);
if (error && !error[0])
count = number;
@@ -1387,6 +1390,7 @@ irc_redirect_command_hsignal_cb (const void *pointer, void *data,
timeout = 0;
if (str_timeout && str_timeout[0])
{
error = NULL;
number = (int)strtol (str_timeout, &error, 10);
if (error && !error[0])
timeout = number;
+2
View File
@@ -877,6 +877,7 @@ plugin_api_info_nick_color_ignore_case_cb (const void *pointer, void *data,
case_range = -1;
if (num_items >= 2)
{
error = NULL;
number = strtol (items[1], &error, 10);
if (error && !error[0])
case_range = (int)number;
@@ -916,6 +917,7 @@ plugin_api_info_nick_color_name_ignore_case_cb (const void *pointer, void *data,
case_range = -1;
if (num_items >= 2)
{
error = NULL;
number = strtol (items[1], &error, 10);
if (error && !error[0])
case_range = (int)number;
+1
View File
@@ -247,6 +247,7 @@ relay_auth_parse_pbkdf2 (const char *parameters,
}
/* parameter 2: iterations */
error = NULL;
*iterations = (int)strtol (argv[1], &error, 10);
if (!error || error[0])
*iterations = 0;
+1
View File
@@ -63,6 +63,7 @@ xfer_network_convert_integer_to_ipv4 (const char *str_address)
if (!str_address || !str_address[0])
return NULL;
error = NULL;
number = strtoll (str_address, &error, 10);
if (!error || error[0] || (number <= 0) || (number > UINT32_MAX))
return NULL;