Skip to content

Commit 25e18d6

Browse files
committed
Don't return empty values in proxy_config functions.
Some platforms such as Windows and Gnome already do this for most values and this extends it to the rest of the functions and platforms.
1 parent 99d3f57 commit 25e18d6

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

config_gnome2.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,18 +131,20 @@ char *proxy_config_gnome2_get_bypass_list(void) {
131131
if (hosts) {
132132
// Enumerate the list to get the size of the bypass list
133133
g_proxy_config_gnome2.g_slist_foreach(hosts, gs_list_for_each_func, &enum_bypass);
134-
enum_bypass.max_value++;
134+
if (enum_bypass.max_value > 0) {
135+
enum_bypass.max_value++;
135136

136-
// Allocate space for the bypass list
137-
bypass_list = calloc(enum_bypass.max_value, sizeof(char));
138-
if (bypass_list) {
139-
enum_bypass.value = bypass_list;
137+
// Allocate space for the bypass list
138+
bypass_list = calloc(enum_bypass.max_value, sizeof(char));
139+
if (bypass_list) {
140+
enum_bypass.value = bypass_list;
140141

141-
// Enumerate the list to get the bypass list string
142-
g_proxy_config_gnome2.g_slist_foreach(hosts, gs_list_for_each_func, &enum_bypass);
142+
// Enumerate the list to get the bypass list string
143+
g_proxy_config_gnome2.g_slist_foreach(hosts, gs_list_for_each_func, &enum_bypass);
143144

144-
// Remove the last separator
145-
str_trim_end(bypass_list, ',');
145+
// Remove the last separator
146+
str_trim_end(bypass_list, ',');
147+
}
146148
}
147149

148150
g_proxy_config_gnome2.g_slist_free_full(hosts, g_proxy_config_gnome2.g_free);

config_mac.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ char *proxy_config_mac_get_auto_config_url(void) {
5656
}
5757
}
5858

59+
// Don't return empty url
60+
if (url && !*url) {
61+
free(url);
62+
url = NULL;
63+
}
64+
5965
CFRelease(proxy_settings);
6066
return url;
6167
}
@@ -119,6 +125,12 @@ char *proxy_config_mac_get_proxy(const char *scheme) {
119125
}
120126
}
121127

128+
// Don't return empty proxy
129+
if (proxy && !*proxy) {
130+
free(proxy);
131+
proxy = NULL;
132+
}
133+
122134
CFRelease(proxy_settings);
123135
return proxy;
124136
}
@@ -188,6 +200,12 @@ char *proxy_config_mac_get_bypass_list(void) {
188200

189201
bypass_list_error:
190202

203+
// Don't return empty bypass list
204+
if (bypass_list && !*bypass_list) {
205+
free(bypass_list);
206+
bypass_list = NULL;
207+
}
208+
191209
CFRelease(proxy_settings);
192210
return bypass_list;
193211
}

0 commit comments

Comments
 (0)