diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index 12ecdac56f..4f76200a6e 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -426,6 +426,10 @@ static uint16_t _mdns_append_ptr_record(uint8_t * packet, uint16_t * index, cons uint16_t record_length = 0; uint8_t part_length; + if (service == NULL) { + return 0; + } + str[0] = instance; str[1] = service; str[2] = proto; @@ -470,6 +474,10 @@ static uint16_t _mdns_append_sdptr_record(uint8_t * packet, uint16_t * index, md uint16_t record_length = 0; uint8_t part_length; + if (service == NULL) { + return 0; + } + sd_str[0] = (char*)"_services"; sd_str[1] = (char*)"_dns-sd"; sd_str[2] = (char*)"_udp"; @@ -515,6 +523,10 @@ static uint16_t _mdns_append_txt_record(uint8_t * packet, uint16_t * index, mdns uint16_t record_length = 0; uint8_t part_length; + if (service == NULL) { + return 0; + } + str[0] = _mdns_get_service_instance_name(service); str[1] = service->service; str[2] = service->proto; @@ -583,6 +595,10 @@ static uint16_t _mdns_append_srv_record(uint8_t * packet, uint16_t * index, mdns uint16_t record_length = 0; uint8_t part_length; + if (service == NULL) { + return 0; + } + str[0] = _mdns_get_service_instance_name(service); str[1] = service->service; str[2] = service->proto; @@ -1132,6 +1148,7 @@ static bool _mdns_alloc_answer(mdns_out_answer_t ** destnation, uint16_t type, m } a->type = type; a->service = service; + a->custom_service = NULL; a->bye = bye; a->flush = flush; a->next = NULL;