]> granicus.if.org Git - esp-idf/commitdiff
mdns: fix memory leak when query for service receives multiple ptr entries for one...
authorDavid Cermak <cermak@espressif.com>
Thu, 14 Feb 2019 15:39:11 +0000 (16:39 +0100)
committerbot <bot@espressif.com>
Thu, 21 Feb 2019 06:43:23 +0000 (06:43 +0000)
fixes redmine issue 27300

components/mdns/mdns.c

index 1626ffaeb80e0b13708b5a937ea659b96f8e0f5c..1bce6db43fe61993d6c0dd625410eb0c945ca652 100644 (file)
@@ -2741,8 +2741,10 @@ void mdns_parse_packet(mdns_rx_packet_t * packet)
 
                 if (search_result) {
                     if (search_result->type == MDNS_TYPE_PTR) {
-                        result->port = port;
-                        result->hostname = strdup(name->host);
+                        if (!result->hostname) { // assign host/port for this entry only if not previously set
+                            result->port = port;
+                            result->hostname = strdup(name->host);
+                        }
                     } else {
                         _mdns_search_result_add_srv(search_result, name->host, port, packet->tcpip_if, packet->ip_protocol);
                     }