From 0a682e7f12280db26da2ad3341d5b6a4216be42b Mon Sep 17 00:00:00 2001 From: David Cermak Date: Sun, 19 Mar 2023 20:58:06 +0100 Subject: [PATCH] fix(mdns): Fix memory issues reported by valgrind * Read after the allocated area (which may lead to subsequent mdns name corruption) * Potentially uninit variable used in condition --- components/mdns/mdns.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index 261292b5e..0612b65fd 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -678,7 +678,7 @@ static uint16_t append_fqdn_dots(uint8_t *packet, uint16_t *index, const char *n char *end = host; char *start = host; do { - end = memchr(start, '.', len); + end = memchr(start, '.', host + len - start); end = end ? end : host + len; int part_len = end - start; if (!append_single_str(packet, index, start, part_len)) { @@ -733,6 +733,7 @@ search_next: //read the destination into name and compare name.parts = 0; name.sub = 0; + name.invalid = false; name.host[0] = 0; name.service[0] = 0; name.proto[0] = 0;