diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2023-01-27 20:47:24 +0100 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2023-01-28 15:14:22 +0100 |
commit | c07cf691adb4740759e9fd128a2f6702c912d70f (patch) | |
tree | 91520d9be1270aae41d23ffeae1f69d3a31b10d2 | |
parent | c9ac4fef4b7aa054df72bddf667edea0608d39c6 (diff) | |
download | weechat-c07cf691adb4740759e9fd128a2f6702c912d70f.zip |
core, plugins: check that string parameters are not NULL in search functions (issue #1872)
40 files changed, 127 insertions, 33 deletions
diff --git a/src/core/hook/wee-hook-command.c b/src/core/hook/wee-hook-command.c index c0c5d4372..2cf2d8349 100644 --- a/src/core/hook/wee-hook-command.c +++ b/src/core/hook/wee-hook-command.c @@ -61,6 +61,9 @@ hook_command_search (struct t_weechat_plugin *plugin, const char *command) { struct t_hook *ptr_hook; + if (!command) + return NULL; + for (ptr_hook = weechat_hooks[HOOK_TYPE_COMMAND]; ptr_hook; ptr_hook = ptr_hook->next_hook) { diff --git a/src/gui/curses/gui-curses-color.c b/src/gui/curses/gui-curses-color.c index e1c214c20..fc34ab914 100644 --- a/src/gui/curses/gui-curses-color.c +++ b/src/gui/curses/gui-curses-color.c @@ -123,6 +123,9 @@ gui_color_search (const char *color_name) { int i; + if (!color_name) + return -1; + for (i = 0; gui_weechat_colors[i].string; i++) { if (string_strcmp (gui_weechat_colors[i].string, color_name) == 0) diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index a1441e236..bfaca29c3 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -2794,11 +2794,16 @@ gui_buffer_search_by_number_or_name (const char *string) long number; char *error; + if (!string) + return NULL; + ptr_buffer = NULL; number = strtol (string, &error, 10); if (error && !error[0]) + { ptr_buffer = gui_buffer_search_by_number (number); + } else { ptr_buffer = gui_buffer_search_by_full_name (string); diff --git a/src/gui/gui-completion.c b/src/gui/gui-completion.c index 1b3f61e96..ada4ce2bc 100644 --- a/src/gui/gui-completion.c +++ b/src/gui/gui-completion.c @@ -319,6 +319,9 @@ gui_completion_search_command (struct t_weechat_plugin *plugin, struct t_hook *ptr_hook, *hook_for_other_plugin, *hook_incomplete_command; int length_command, allow_incomplete_commands, count_incomplete_commands; + if (!command) + return NULL; + hook_for_other_plugin = NULL; hook_incomplete_command = NULL; length_command = utf8_strlen (command); diff --git a/src/gui/gui-key.c b/src/gui/gui-key.c index 203126579..a7c76c6b9 100644 --- a/src/gui/gui-key.c +++ b/src/gui/gui-key.c @@ -710,6 +710,9 @@ gui_key_search (struct t_gui_key *keys, const char *key) { struct t_gui_key *ptr_key; + if (!key) + return NULL; + for (ptr_key = keys; ptr_key; ptr_key = ptr_key->next_key) { if (strcmp (ptr_key->key, key) == 0) @@ -756,6 +759,9 @@ gui_key_search_part (struct t_gui_buffer *buffer, int context, { struct t_gui_key *ptr_key; + if (!key) + return NULL; + for (ptr_key = (buffer) ? buffer->keys : gui_keys[context]; ptr_key; ptr_key = ptr_key->next_key) { diff --git a/src/gui/gui-layout.c b/src/gui/gui-layout.c index 51b12c1d8..f7f9155d6 100644 --- a/src/gui/gui-layout.c +++ b/src/gui/gui-layout.c @@ -55,6 +55,9 @@ gui_layout_search (const char *name) { struct t_gui_layout *ptr_layout; + if (!name) + return NULL; + for (ptr_layout = gui_layouts; ptr_layout; ptr_layout = ptr_layout->next_layout) { diff --git a/src/gui/gui-nicklist.c b/src/gui/gui-nicklist.c index 4b400775b..5b27fb5d0 100644 --- a/src/gui/gui-nicklist.c +++ b/src/gui/gui-nicklist.c @@ -196,7 +196,7 @@ gui_nicklist_search_group_internal (struct t_gui_buffer *buffer, struct t_gui_nick_group *ptr_group; const char *ptr_name; - if (!buffer) + if (!buffer || !name) return NULL; if (!from_group) @@ -242,6 +242,9 @@ gui_nicklist_search_group (struct t_gui_buffer *buffer, { const char *ptr_name; + if (!buffer || !name) + return NULL; + ptr_name = gui_nicklist_get_group_start (name); return gui_nicklist_search_group_internal (buffer, from_group, name, @@ -388,6 +391,9 @@ gui_nicklist_search_nick (struct t_gui_buffer *buffer, if (!buffer && !from_group) return NULL; + if (!name) + return NULL; + if (!from_group && !buffer->nicklist_root) return NULL; diff --git a/src/plugins/alias/alias.c b/src/plugins/alias/alias.c index 587feaeac..824555cde 100644 --- a/src/plugins/alias/alias.c +++ b/src/plugins/alias/alias.c @@ -84,6 +84,9 @@ alias_search (const char *alias_name) { struct t_alias *ptr_alias; + if (!alias_name) + return NULL; + for (ptr_alias = alias_list; ptr_alias; ptr_alias = ptr_alias->next_alias) { diff --git a/src/plugins/exec/exec-command.c b/src/plugins/exec/exec-command.c index 7cfec192a..8dc0aa25d 100644 --- a/src/plugins/exec/exec-command.c +++ b/src/plugins/exec/exec-command.c @@ -148,6 +148,9 @@ exec_command_search_running_id (const char *id) { struct t_exec_cmd *ptr_exec_cmd; + if (!id) + return NULL; + ptr_exec_cmd = exec_search_by_id (id); if (!ptr_exec_cmd) { diff --git a/src/plugins/exec/exec.c b/src/plugins/exec/exec.c index 71447a76b..2928883ef 100644 --- a/src/plugins/exec/exec.c +++ b/src/plugins/exec/exec.c @@ -86,6 +86,9 @@ exec_search_by_id (const char *id) char *error; long number; + if (!id) + return NULL; + error = NULL; number = strtol (id, &error, 10); if (!error || error[0]) diff --git a/src/plugins/fset/fset-option.c b/src/plugins/fset/fset-option.c index 748bce747..e6d9c0e86 100644 --- a/src/plugins/fset/fset-option.c +++ b/src/plugins/fset/fset-option.c @@ -102,6 +102,9 @@ fset_option_search_by_name (const char *name, int *line) if (line) *line = -1; + if (!name) + return NULL; + num_options = weechat_arraylist_size (fset_options); for (i = 0; i < num_options; i++) { diff --git a/src/plugins/guile/weechat-guile-api.c b/src/plugins/guile/weechat-guile-api.c index c90f6377f..d5678e41e 100644 --- a/src/plugins/guile/weechat-guile-api.c +++ b/src/plugins/guile/weechat-guile-api.c @@ -176,8 +176,7 @@ weechat_guile_api_register (SCM name, SCM author, SCM version, SCM license, || !scm_is_string (charset)) API_WRONG_ARGS(API_RETURN_ERROR); - if (plugin_script_search (weechat_guile_plugin, guile_scripts, - API_SCM_TO_STRING(name))) + if (plugin_script_search (guile_scripts, API_SCM_TO_STRING(name))) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/guile/weechat-guile.c b/src/plugins/guile/weechat-guile.c index 40c8bb3e5..d851e09ee 100644 --- a/src/plugins/guile/weechat-guile.c +++ b/src/plugins/guile/weechat-guile.c @@ -668,7 +668,7 @@ weechat_guile_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_guile_plugin, guile_scripts, name); + ptr_script = plugin_script_search (guile_scripts, name); if (ptr_script) { weechat_guile_unload (ptr_script); @@ -710,7 +710,7 @@ weechat_guile_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_guile_plugin, guile_scripts, name); + ptr_script = plugin_script_search (guile_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c index b1aafe41c..3c86cb0fb 100644 --- a/src/plugins/irc/irc-channel.c +++ b/src/plugins/irc/irc-channel.c @@ -195,6 +195,9 @@ irc_channel_search_buffer (struct t_irc_server *server, int channel_type, struct t_gui_buffer *ptr_buffer; const char *ptr_type, *ptr_server_name, *ptr_channel_name; + if (!channel_name) + return NULL; + hdata_buffer = weechat_hdata_get ("buffer"); ptr_buffer = weechat_hdata_get_list (hdata_buffer, "gui_buffers"); @@ -989,6 +992,9 @@ irc_channel_nick_speaking_time_search (struct t_irc_server *server, struct t_irc_channel_speaking *ptr_nick; time_t time_limit; + if (!server || !channel || !nick_name) + return NULL; + time_limit = time (NULL) - (weechat_config_integer (irc_config_look_smart_filter_delay) * 60); diff --git a/src/plugins/irc/irc-ignore.c b/src/plugins/irc/irc-ignore.c index b39e107b8..02202e995 100644 --- a/src/plugins/irc/irc-ignore.c +++ b/src/plugins/irc/irc-ignore.c @@ -73,6 +73,9 @@ irc_ignore_search (const char *mask, const char *server, const char *channel) struct t_irc_ignore *ptr_ignore; char any[2] = "*"; + if (!mask) + return NULL; + if (!server) server = any; if (!channel) diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index f1f969acb..1c5726bc6 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -238,6 +238,9 @@ irc_server_search_casemapping (const char *casemapping) { int i; + if (!casemapping) + return -1; + for (i = 0; i < IRC_SERVER_NUM_CASEMAPPING; i++) { if (weechat_strcasecmp (irc_server_casemapping_string[i], casemapping) == 0) @@ -260,6 +263,9 @@ irc_server_search_utf8mapping (const char *utf8mapping) { int i; + if (!utf8mapping) + return -1; + for (i = 0; i < IRC_SERVER_NUM_UTF8MAPPING; i++) { if (weechat_strcasecmp (irc_server_utf8mapping_string[i], utf8mapping) == 0) diff --git a/src/plugins/javascript/weechat-js-api.cpp b/src/plugins/javascript/weechat-js-api.cpp index 5c446ed66..e05419048 100644 --- a/src/plugins/javascript/weechat-js-api.cpp +++ b/src/plugins/javascript/weechat-js-api.cpp @@ -149,7 +149,7 @@ API_FUNC(register) v8::String::Utf8Value shutdown_func(args[5]); v8::String::Utf8Value charset(args[6]); - if (plugin_script_search (weechat_js_plugin, js_scripts, *name)) + if (plugin_script_search (js_scripts, *name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/javascript/weechat-js.cpp b/src/plugins/javascript/weechat-js.cpp index 7c079af8f..75821b5cc 100644 --- a/src/plugins/javascript/weechat-js.cpp +++ b/src/plugins/javascript/weechat-js.cpp @@ -486,7 +486,7 @@ weechat_js_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_js_plugin, js_scripts, name); + ptr_script = plugin_script_search (js_scripts, name); if (ptr_script) { weechat_js_unload (ptr_script); @@ -528,7 +528,7 @@ weechat_js_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_js_plugin, js_scripts, name); + ptr_script = plugin_script_search (js_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/lua/weechat-lua-api.c b/src/plugins/lua/weechat-lua-api.c index 0f5e1a6b8..69ef607e5 100644 --- a/src/plugins/lua/weechat-lua-api.c +++ b/src/plugins/lua/weechat-lua-api.c @@ -154,7 +154,7 @@ API_FUNC(register) shutdown_func = lua_tostring (L, -2); charset = lua_tostring (L, -1); - if (plugin_script_search (weechat_lua_plugin, lua_scripts, name)) + if (plugin_script_search (lua_scripts, name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/lua/weechat-lua.c b/src/plugins/lua/weechat-lua.c index 95076fa3f..f42d0b70e 100644 --- a/src/plugins/lua/weechat-lua.c +++ b/src/plugins/lua/weechat-lua.c @@ -767,7 +767,7 @@ weechat_lua_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_lua_plugin, lua_scripts, name); + ptr_script = plugin_script_search (lua_scripts, name); if (ptr_script) { weechat_lua_unload (ptr_script); @@ -796,7 +796,7 @@ weechat_lua_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_lua_plugin, lua_scripts, name); + ptr_script = plugin_script_search (lua_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/perl/weechat-perl-api.c b/src/plugins/perl/weechat-perl-api.c index b06d20953..b8b0dac13 100644 --- a/src/plugins/perl/weechat-perl-api.c +++ b/src/plugins/perl/weechat-perl-api.c @@ -133,7 +133,7 @@ API_FUNC(register) shutdown_func = SvPV_nolen (ST (5)); charset = SvPV_nolen (ST (6)); - if (plugin_script_search (weechat_perl_plugin, perl_scripts, name)) + if (plugin_script_search (perl_scripts, name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/perl/weechat-perl.c b/src/plugins/perl/weechat-perl.c index 74375e347..bfad79d61 100644 --- a/src/plugins/perl/weechat-perl.c +++ b/src/plugins/perl/weechat-perl.c @@ -750,7 +750,7 @@ weechat_perl_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_perl_plugin, perl_scripts, name); + ptr_script = plugin_script_search (perl_scripts, name); if (ptr_script) { weechat_perl_unload (ptr_script); @@ -792,7 +792,7 @@ weechat_perl_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_perl_plugin, perl_scripts, name); + ptr_script = plugin_script_search (perl_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/php/weechat-php-api.c b/src/plugins/php/weechat-php-api.c index 9e10984f5..112af9709 100644 --- a/src/plugins/php/weechat-php-api.c +++ b/src/plugins/php/weechat-php-api.c @@ -128,7 +128,7 @@ API_FUNC(register) php_current_script = NULL; php_registered_script = NULL; - if (plugin_script_search (weechat_php_plugin, php_scripts, ZSTR_VAL(name))) + if (plugin_script_search (php_scripts, ZSTR_VAL(name))) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/php/weechat-php.c b/src/plugins/php/weechat-php.c index 928e0e268..ac2cbc508 100644 --- a/src/plugins/php/weechat-php.c +++ b/src/plugins/php/weechat-php.c @@ -805,7 +805,7 @@ weechat_php_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_php_plugin, php_scripts, name); + ptr_script = plugin_script_search (php_scripts, name); if (ptr_script) { weechat_php_unload (ptr_script); @@ -847,7 +847,7 @@ weechat_php_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_php_plugin, php_scripts, name); + ptr_script = plugin_script_search (php_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/plugin-config.c b/src/plugins/plugin-config.c index 890bc20ed..df2c2cbf5 100644 --- a/src/plugins/plugin-config.c +++ b/src/plugins/plugin-config.c @@ -55,6 +55,9 @@ plugin_config_search (const char *plugin_name, const char *option_name) char *option_full_name; struct t_config_option *ptr_option; + if (!plugin_name || !option_name) + return NULL; + ptr_option = NULL; length = strlen (plugin_name) + 1 + strlen (option_name) + 1; diff --git a/src/plugins/plugin-script.c b/src/plugins/plugin-script.c index 4a0abe078..533483d03 100644 --- a/src/plugins/plugin-script.c +++ b/src/plugins/plugin-script.c @@ -481,14 +481,13 @@ plugin_script_auto_load (struct t_weechat_plugin *weechat_plugin, } /* - * Searches for a script by registered name (example: "iset"). + * Searches for a script by registered name. * * Returns pointer to script, NULL if not found. */ struct t_plugin_script * -plugin_script_search (struct t_weechat_plugin *weechat_plugin, - struct t_plugin_script *scripts, const char *name) +plugin_script_search (struct t_plugin_script *scripts, const char *name) { struct t_plugin_script *ptr_script; @@ -519,6 +518,9 @@ plugin_script_search_by_full_name (struct t_plugin_script *scripts, char *base_name; struct t_plugin_script *ptr_script; + if (!full_name) + return NULL; + for (ptr_script = scripts; ptr_script; ptr_script = ptr_script->next_script) { @@ -545,6 +547,9 @@ plugin_script_search_path (struct t_weechat_plugin *weechat_plugin, int length; struct stat st; + if (!filename) + return NULL; + if (filename[0] == '~') return weechat_string_expand_home (filename); @@ -820,8 +825,7 @@ plugin_script_set_buffer_callbacks (struct t_weechat_plugin *weechat_plugin, script_name = weechat_buffer_get_string (ptr_buffer, "localvar_script_name"); if (script_name && script_name[0]) { - ptr_script = plugin_script_search (weechat_plugin, scripts, - script_name); + ptr_script = plugin_script_search (scripts, script_name); if (ptr_script && (ptr_script == script)) { str_script_input_cb = weechat_buffer_get_string ( diff --git a/src/plugins/plugin-script.h b/src/plugins/plugin-script.h index 9133b3c43..d54751299 100644 --- a/src/plugins/plugin-script.h +++ b/src/plugins/plugin-script.h @@ -133,8 +133,7 @@ extern void plugin_script_get_function_and_data (void *callback_data, extern void plugin_script_auto_load (struct t_weechat_plugin *weechat_plugin, void (*callback)(void *data, const char *filename)); -extern struct t_plugin_script *plugin_script_search (struct t_weechat_plugin *weechat_plugin, - struct t_plugin_script *scripts, +extern struct t_plugin_script *plugin_script_search (struct t_plugin_script *scripts, const char *name); extern char *plugin_script_search_path (struct t_weechat_plugin *weechat_plugin, const char *filename); diff --git a/src/plugins/python/weechat-python-api.c b/src/plugins/python/weechat-python-api.c index 9e50dc006..a54c024e6 100644 --- a/src/plugins/python/weechat-python-api.c +++ b/src/plugins/python/weechat-python-api.c @@ -115,7 +115,7 @@ API_FUNC(register) &license, &description, &shutdown_func, &charset)) API_WRONG_ARGS(API_RETURN_ERROR); - if (plugin_script_search (weechat_python_plugin, python_scripts, name)) + if (plugin_script_search (python_scripts, name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/python/weechat-python.c b/src/plugins/python/weechat-python.c index a60209227..94a7d9e95 100644 --- a/src/plugins/python/weechat-python.c +++ b/src/plugins/python/weechat-python.c @@ -993,7 +993,7 @@ weechat_python_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_python_plugin, python_scripts, name); + ptr_script = plugin_script_search (python_scripts, name); if (ptr_script) { weechat_python_unload (ptr_script); @@ -1035,7 +1035,7 @@ weechat_python_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_python_plugin, python_scripts, name); + ptr_script = plugin_script_search (python_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/relay/irc/relay-irc.c b/src/plugins/relay/irc/relay-irc.c index 25c8f6dc1..bd8be06ae 100644 --- a/src/plugins/relay/irc/relay-irc.c +++ b/src/plugins/relay/irc/relay-irc.c @@ -109,6 +109,9 @@ relay_irc_search_backlog_commands_tags (const char *tag) { int i; + if (!tag) + return -1; + for (i = 0; i < RELAY_IRC_NUM_CMD; i++) { if (strcmp (relay_irc_backlog_commands_tags[i], tag) == 0) @@ -131,6 +134,9 @@ relay_irc_search_server_capability (const char *capability) { int i; + if (!capability) + return -1; + for (i = 0; i < RELAY_IRC_NUM_CAPAB; i++) { if (strcmp (relay_irc_server_capabilities[i], capability) == 0) diff --git a/src/plugins/relay/relay-client.c b/src/plugins/relay/relay-client.c index 16dd268ff..4e93726e2 100644 --- a/src/plugins/relay/relay-client.c +++ b/src/plugins/relay/relay-client.c @@ -150,6 +150,9 @@ relay_client_status_search (const char *name) { int i; + if (!name) + return -1; + for (i = 0; i < RELAY_NUM_STATUS; i++) { if (strcmp (relay_client_status_name[i], name) == 0) diff --git a/src/plugins/relay/relay-server.c b/src/plugins/relay/relay-server.c index a52eaf74b..e00e3bbaf 100644 --- a/src/plugins/relay/relay-server.c +++ b/src/plugins/relay/relay-server.c @@ -170,6 +170,9 @@ relay_server_search (const char *protocol_and_args) { struct t_relay_server *ptr_server; + if (!protocol_and_args) + return NULL; + for (ptr_server = relay_servers; ptr_server; ptr_server = ptr_server->next_server) { @@ -213,6 +216,9 @@ relay_server_search_path (const char *path) { struct t_relay_server *ptr_server; + if (!path) + return NULL; + for (ptr_server = relay_servers; ptr_server; ptr_server = ptr_server->next_server) { diff --git a/src/plugins/relay/relay.c b/src/plugins/relay/relay.c index dd8932ae0..429bc5a54 100644 --- a/src/plugins/relay/relay.c +++ b/src/plugins/relay/relay.c @@ -66,6 +66,9 @@ relay_protocol_search (const char *name) { int i; + if (!name) + return -1; + for (i = 0; i < RELAY_NUM_PROTOCOLS; i++) { if (strcmp (relay_protocol_string[i], name) == 0) diff --git a/src/plugins/relay/weechat/relay-weechat.c b/src/plugins/relay/weechat/relay-weechat.c index de9ff6535..eea6c5394 100644 --- a/src/plugins/relay/weechat/relay-weechat.c +++ b/src/plugins/relay/weechat/relay-weechat.c @@ -56,6 +56,9 @@ relay_weechat_compression_search (const char *compression) { int i; + if (!compression) + return -1; + for (i = 0; i < RELAY_WEECHAT_NUM_COMPRESSIONS; i++) { if (weechat_strcasecmp (relay_weechat_compression_string[i], compression) == 0) diff --git a/src/plugins/ruby/weechat-ruby-api.c b/src/plugins/ruby/weechat-ruby-api.c index 54c894eab..fccec5063 100644 --- a/src/plugins/ruby/weechat-ruby-api.c +++ b/src/plugins/ruby/weechat-ruby-api.c @@ -125,7 +125,7 @@ weechat_ruby_api_register (VALUE class, VALUE name, VALUE author, c_shutdown_func = StringValuePtr (shutdown_func); c_charset = StringValuePtr (charset); - if (plugin_script_search (weechat_ruby_plugin, ruby_scripts, c_name)) + if (plugin_script_search (ruby_scripts, c_name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/ruby/weechat-ruby.c b/src/plugins/ruby/weechat-ruby.c index ab2645c36..1ce7da62b 100644 --- a/src/plugins/ruby/weechat-ruby.c +++ b/src/plugins/ruby/weechat-ruby.c @@ -803,7 +803,7 @@ weechat_ruby_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_ruby_plugin, ruby_scripts, name); + ptr_script = plugin_script_search (ruby_scripts, name); if (ptr_script) { weechat_ruby_unload (ptr_script); @@ -832,7 +832,7 @@ weechat_ruby_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_ruby_plugin, ruby_scripts, name); + ptr_script = plugin_script_search (ruby_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); diff --git a/src/plugins/script/script-repo.c b/src/plugins/script/script-repo.c index df947e098..43376a9fa 100644 --- a/src/plugins/script/script-repo.c +++ b/src/plugins/script/script-repo.c @@ -122,6 +122,9 @@ script_repo_search_by_name (const char *name) { struct t_script_repo *ptr_script; + if (!name) + return NULL; + for (ptr_script = scripts_repo; ptr_script; ptr_script = ptr_script->next_script) { @@ -144,6 +147,9 @@ script_repo_search_by_name_ext (const char *name_with_extension) { struct t_script_repo *ptr_script; + if (!name_with_extension) + return NULL; + for (ptr_script = scripts_repo; ptr_script; ptr_script = ptr_script->next_script) { diff --git a/src/plugins/script/script.c b/src/plugins/script/script.c index 16481c0d4..553ac3765 100644 --- a/src/plugins/script/script.c +++ b/src/plugins/script/script.c @@ -67,6 +67,9 @@ script_language_search (const char *language) { int i; + if (!language) + return -1; + for (i = 0; i < SCRIPT_NUM_LANGUAGES; i++) { if (strcmp (script_language[i], language) == 0) @@ -88,6 +91,9 @@ script_language_search_by_extension (const char *extension) { int i; + if (!extension) + return -1; + for (i = 0; i < SCRIPT_NUM_LANGUAGES; i++) { if (strcmp (script_extension[i], extension) == 0) diff --git a/src/plugins/tcl/weechat-tcl-api.c b/src/plugins/tcl/weechat-tcl-api.c index 323f8bdf8..c73cf2caa 100644 --- a/src/plugins/tcl/weechat-tcl-api.c +++ b/src/plugins/tcl/weechat-tcl-api.c @@ -254,7 +254,7 @@ API_FUNC(register) shutdown_func = Tcl_GetStringFromObj (objv[6], &i); charset = Tcl_GetStringFromObj (objv[7], &i); - if (plugin_script_search (weechat_tcl_plugin, tcl_scripts, name)) + if (plugin_script_search (tcl_scripts, name)) { /* another script already exists with same name */ weechat_printf (NULL, diff --git a/src/plugins/tcl/weechat-tcl.c b/src/plugins/tcl/weechat-tcl.c index 57d95539e..79d0a5243 100644 --- a/src/plugins/tcl/weechat-tcl.c +++ b/src/plugins/tcl/weechat-tcl.c @@ -487,7 +487,7 @@ weechat_tcl_unload_name (const char *name) { struct t_plugin_script *ptr_script; - ptr_script = plugin_script_search (weechat_tcl_plugin, tcl_scripts, name); + ptr_script = plugin_script_search (tcl_scripts, name); if (ptr_script) { weechat_tcl_unload (ptr_script); @@ -529,7 +529,7 @@ weechat_tcl_reload_name (const char *name) struct t_plugin_script *ptr_script; char *filename; - ptr_script = plugin_script_search (weechat_tcl_plugin, tcl_scripts, name); + ptr_script = plugin_script_search (tcl_scripts, name); if (ptr_script) { filename = strdup (ptr_script->filename); |