From 86973eae1f86fd7f36e23ade9fe8892efd8c1846 Mon Sep 17 00:00:00 2001 From: Francesco Giudici Date: Mon, 2 Sep 2019 17:30:59 +0200 Subject: dhcp: nettools: add utf8 checking on the wpad option and assert values exported as dhcp options are utf8 compliant --- src/dhcp/nm-dhcp-nettools.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/dhcp/nm-dhcp-nettools.c') diff --git a/src/dhcp/nm-dhcp-nettools.c b/src/dhcp/nm-dhcp-nettools.c index 594145a84d..12b14c28ca 100644 --- a/src/dhcp/nm-dhcp-nettools.c +++ b/src/dhcp/nm-dhcp-nettools.c @@ -811,7 +811,7 @@ static void lease_parse_wpad (NDhcp4ClientLease *lease, GHashTable *options) { - nm_auto_free_gstring GString *str = NULL; + gs_free char *wpad = NULL; uint8_t *data; size_t n_data; int r; @@ -820,11 +820,14 @@ lease_parse_wpad (NDhcp4ClientLease *lease, if (r) return; - str = g_string_new_len ((char *)data, n_data); + nm_utils_buf_utf8safe_escape ((char *)data, n_data, 0, &wpad); + if (wpad == NULL) + wpad = g_strndup ((char *)data, n_data); + nm_dhcp_option_add_option (options, _nm_dhcp_option_dhcp4_options, NM_DHCP_OPTION_DHCP4_PRIVATE_PROXY_AUTODISCOVERY, - str->str); + wpad); } static void -- cgit v1.2.1