Add some missing freeaddrinfo() calls to avoid leaking memory.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 22 Jan 2018 17:27:16 +0000 (10:27 -0700)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 22 Jan 2018 17:27:16 +0000 (10:27 -0700)
src/invitation.c
src/net_setup.c

index c667a6e..4a262a8 100644 (file)
@@ -1201,6 +1201,7 @@ next:
                aip = aip->ai_next;
 
                if(!aip) {
                aip = aip->ai_next;
 
                if(!aip) {
+                       freeaddrinfo(ai);
                        return 1;
                }
        }
                        return 1;
                }
        }
@@ -1246,6 +1247,8 @@ next:
                goto next;
        }
 
                goto next;
        }
 
+       freeaddrinfo(ai);
+
        // Check if the hash of the key he gave us matches the hash in the URL.
        char *fingerprint = line + 2;
        char hishash[64];
        // Check if the hash of the key he gave us matches the hash in the URL.
        char *fingerprint = line + 2;
        char hishash[64];
index 4f9d738..17675ae 100644 (file)
@@ -902,6 +902,7 @@ static bool setup_myself(void) {
 
                free(myport);
                memcpy(&sa, ai->ai_addr, ai->ai_addrlen);
 
                free(myport);
                memcpy(&sa, ai->ai_addr, ai->ai_addrlen);
+               freeaddrinfo(ai);
                sockaddr2str(&sa, NULL, &myport);
        }
 
                sockaddr2str(&sa, NULL, &myport);
        }