Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta (tmow) <antenore@simbiosi.org>2021-07-14 09:59:40 +0300
committerAntenore Gatta (tmow) <antenore@simbiosi.org>2021-07-14 09:59:40 +0300
commitdc40bd38d488fbf9774d6fe0163df9f602919a04 (patch)
treed6053bf83cf66eb355cbe868d6251be214ee5fa2
parentcf3c71251609e9c9b572e0b1f4e456138f4f24a7 (diff)
parent45cb7885430c3504405bd8a729dc2f54849ec196 (diff)
Merge branch 'issue/2555-search-bar-sanitize' into 'master'
Nullify host if qucikconnect isn't a valid address Closes #2555 See merge request Remmina/Remmina!2298
-rw-r--r--src/remmina_main.c13
-rw-r--r--src/remmina_public.c5
2 files changed, 13 insertions, 5 deletions
diff --git a/src/remmina_main.c b/src/remmina_main.c
index 1b02296ea..b69abfda1 100644
--- a/src/remmina_main.c
+++ b/src/remmina_main.c
@@ -665,7 +665,7 @@ static void remmina_main_load_files()
gtk_statusbar_push(remminamain->statusbar_main, context_id, buf);
}
-void remmina_main_load_files_cb()
+void remmina_main_load_files_cb(GtkEntry *entry, char *string, gpointer user_data)
{
TRACE_CALL(__func__);
remmina_main_load_files();
@@ -755,7 +755,6 @@ void remmina_main_on_action_connection_new(GSimpleAction *action, GVariant *para
}
static gboolean remmina_main_search_key_event (GtkWidget *search_entry, GdkEventKey *event, gpointer user_data)
-
{
TRACE_CALL(__func__);
if (event->keyval == GDK_KEY_Escape) {
@@ -1132,6 +1131,16 @@ static gboolean remmina_main_quickconnect(void)
remminafile = remmina_file_new();
server = g_strdup(gtk_entry_get_text(remminamain->entry_quick_connect_server));
+ if (g_hostname_to_ascii(server) == NULL)
+ return FALSE;
+ /* If server contain /, e.g. vnc://, it won't connect
+ * We could search for an array of invalid characters, but
+ * it's better to find a way to correctly parse and validate addresses
+ */
+ if (g_strrstr(server, "/") != NULL)
+ return FALSE;
+ //if (g_str_has_suffix (server, "/"))
+ //return FALSE;
if (is_empty(server))
return FALSE;
diff --git a/src/remmina_public.c b/src/remmina_public.c
index 5b635c9c8..596281514 100644
--- a/src/remmina_public.c
+++ b/src/remmina_public.c
@@ -434,14 +434,13 @@ void remmina_public_get_server_port(const gchar *server, gint defaultport, gchar
nul_terminated_server = g_strdup (server);
g_debug ("(%s) - Parsing server: %s, default port: %d", __func__, server, defaultport);
- address = (GNetworkAddress*)g_network_address_parse ((const gchar *) nul_terminated_server, defaultport, &err);
+ address = (GNetworkAddress*)g_network_address_parse ((const gchar *)nul_terminated_server, defaultport, &err);
if (address == NULL) {
g_debug ("(%s) - Error converting server string: %s, with error: %s", __func__, nul_terminated_server, err->message);
+ *host = NULL;
if (err)
g_error_free(err);
- //g_debug ("(%s) - Using remmina_public_get_server_port_old to parse the address", __func__);
- //remmina_public_get_server_port_old (server, defaultport, host, port);
} else {
*host = g_strdup(g_network_address_get_hostname (address));