From a6c7b86204257087db702876646db38acad8a698 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20De=20Keersmaeker?=
 <francois.dekeersmaeker@uclouvain.be>
Date: Wed, 17 Jul 2024 16:04:56 +0200
Subject: [PATCH] DNS: Fixed memory leak

---
 src/dns.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/dns.c b/src/dns.c
index b99c1d9..3b7c305 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -513,6 +513,7 @@ int dns_receive_response(int sockfd, struct sockaddr_in *server_addr, dns_messag
     if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) < 0)
     {
         perror("Error setting socket receive timeout");
+        free(buffer);
         return -1;
     }
 
@@ -526,11 +527,14 @@ int dns_receive_response(int sockfd, struct sockaddr_in *server_addr, dns_messag
         } else {
             perror("Failed receiving DNS response.");
         }
+        free(buffer);
         return -1;
     }
 
     // DNS response was received successfully, parse it
     *dns_message = dns_parse_message(buffer);
+
+    free(buffer);
     return 0;
 }
 
-- 
GitLab