Skip to content

Commit 5e40cb3

Browse files
author
Mika
committed
Fix 0 length domain search list
0 length will delete search list and is also legal
1 parent f0f5131 commit 5e40cb3

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

source/libNET/src/net_dns.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,17 @@ int8_t net_dns_server_search_list_set(int8_t interface_id, const uint8_t address
150150
info_ptr->dns_search_list_ptr = NULL;
151151
}
152152

153-
if (!info_ptr->dns_search_list_ptr) {
154-
info_ptr->dns_search_list_ptr = ns_dyn_mem_alloc(dns_search_list_len);
155-
}
153+
if (dns_search_list_len) {
154+
if (!info_ptr->dns_search_list_ptr) {
155+
info_ptr->dns_search_list_ptr = ns_dyn_mem_alloc(dns_search_list_len);
156+
}
156157

157-
if (!info_ptr->dns_search_list_ptr) {
158-
return -2;
158+
if (!info_ptr->dns_search_list_ptr) {
159+
return -2;
160+
}
161+
memcpy(info_ptr->dns_search_list_ptr, dns_search_list_ptr, dns_search_list_len);
159162
}
160163

161-
memcpy(info_ptr->dns_search_list_ptr, dns_search_list_ptr, dns_search_list_len);
162164
info_ptr->dns_search_list_len = dns_search_list_len;
163165
tr_info("DNS Search List: %s Lifetime: %lu", trace_array(info_ptr->dns_search_list_ptr, info_ptr->dns_search_list_len), (unsigned long) info_ptr->lifetime);
164166

0 commit comments

Comments
 (0)