mdns: fix crash when adding services without hostname set

* Original commit: espressif/esp-idf@5e98772eaf
This commit is contained in:
Jiacheng Guo
2021-07-27 12:06:01 +08:00
committed by suren-gabrielyan-espressif
parent c2abeff476
commit 4c368c0090

View File

@ -178,7 +178,7 @@ static mdns_srv_item_t * _mdns_get_service_item(const char * service, const char
static mdns_host_item_t * mdns_get_host_item(const char * hostname) static mdns_host_item_t * mdns_get_host_item(const char * hostname)
{ {
if (strcasecmp(hostname, _mdns_server->hostname) == 0) { if (hostname == NULL || strcasecmp(hostname, _mdns_server->hostname) == 0) {
return &_mdns_self_host; return &_mdns_self_host;
} }
mdns_host_item_t * host = _mdns_host_list; mdns_host_item_t * host = _mdns_host_list;
@ -4898,8 +4898,7 @@ esp_err_t mdns_instance_name_set(const char * instance)
esp_err_t mdns_service_add_for_host(const char * instance, const char * service, const char * proto, const char * hostname, esp_err_t mdns_service_add_for_host(const char * instance, const char * service, const char * proto, const char * hostname,
uint16_t port, mdns_txt_item_t txt[], size_t num_items) uint16_t port, mdns_txt_item_t txt[], size_t num_items)
{ {
if (!_mdns_server || _str_null_or_empty(service) || _str_null_or_empty(proto) || _str_null_or_empty(hostname) || if (!_mdns_server || _str_null_or_empty(service) || _str_null_or_empty(proto) || !port) {
!port) {
return ESP_ERR_INVALID_ARG; return ESP_ERR_INVALID_ARG;
} }
@ -4959,7 +4958,7 @@ esp_err_t mdns_service_add_for_host(const char * instance, const char * service,
esp_err_t mdns_service_add(const char * instance, const char * service, const char * proto, uint16_t port, esp_err_t mdns_service_add(const char * instance, const char * service, const char * proto, uint16_t port,
mdns_txt_item_t txt[], size_t num_items) mdns_txt_item_t txt[], size_t num_items)
{ {
if (!_mdns_server || _str_null_or_empty(_mdns_server->hostname)) { if (!_mdns_server) {
return ESP_ERR_INVALID_STATE; return ESP_ERR_INVALID_STATE;
} }
return mdns_service_add_for_host(instance, service, proto, _mdns_server->hostname, port, txt, num_items); return mdns_service_add_for_host(instance, service, proto, _mdns_server->hostname, port, txt, num_items);