[glib] resolver: Return error looking up services on invalid hostnames
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] resolver: Return error looking up services on invalid hostnames
- Date: Thu, 1 Feb 2018 14:59:24 +0000 (UTC)
commit 132cf9a9d47d6cf95df8f07a5722f82a540d0a17
Author: Bastien Nocera <hadess hadess net>
Date: Wed Dec 7 17:39:56 2016 +0100
resolver: Return error looking up services on invalid hostnames
Make g_resolver_lookup_service() and
g_resolver_lookup_service_async() error out when invalid hostnames are
passed.
https://bugzilla.gnome.org/show_bug.cgi?id=772989
gio/gresolver.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/gio/gresolver.c b/gio/gresolver.c
index f9d0573..b60544a 100644
--- a/gio/gresolver.c
+++ b/gio/gresolver.c
@@ -659,6 +659,8 @@ g_resolver_get_service_rrname (const char *service,
if (g_hostname_is_non_ascii (domain))
domain = ascii_domain = g_hostname_to_ascii (domain);
+ if (!domain)
+ return NULL;
rrname = g_strdup_printf ("_%s._%s.%s", service, protocol, domain);
@@ -721,6 +723,12 @@ g_resolver_lookup_service (GResolver *resolver,
g_return_val_if_fail (domain != NULL, NULL);
rrname = g_resolver_get_service_rrname (service, protocol, domain);
+ if (!rrname)
+ {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Invalid domain"));
+ return NULL;
+ }
g_resolver_maybe_reload (resolver);
targets = G_RESOLVER_GET_CLASS (resolver)->
@@ -765,6 +773,14 @@ g_resolver_lookup_service_async (GResolver *resolver,
g_return_if_fail (domain != NULL);
rrname = g_resolver_get_service_rrname (service, protocol, domain);
+ if (!rrname)
+ {
+ g_task_report_new_error (resolver, callback, user_data,
+ g_resolver_lookup_service_async,
+ G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Invalid domain"));
+ return;
+ }
g_resolver_maybe_reload (resolver);
G_RESOLVER_GET_CLASS (resolver)->
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]