]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/tls_ephemeral_credentials: avoid some memory leaks
authorGrigorii Demidov <grigorii.demidov@nic.cz>
Fri, 5 Jan 2018 07:15:39 +0000 (08:15 +0100)
committerPetr Špaček <petr.spacek@nic.cz>
Mon, 8 Jan 2018 11:01:02 +0000 (12:01 +0100)
daemon/tls_ephemeral_credentials.c

index 9c96d86c73570ea66e18562dd92b1671b9c00607..6fe86b84e0547becaa4b655a25553b2602f146b6 100644 (file)
@@ -114,6 +114,8 @@ static gnutls_x509_privkey_t get_ephemeral_privkey ()
                bad_data:
                        close(datafd);
                        datafd = -1;
+               }
+               if (data.data != NULL) {
                        gnutls_free(data.data);
                        data.data = NULL;
                }
@@ -150,8 +152,12 @@ static gnutls_x509_privkey_t get_ephemeral_privkey ()
        }
  done:
        _lock_unlock(&lock, EPHEMERAL_PRIVKEY_FILENAME ".lock");
-       if (datafd != -1)
+       if (datafd != -1) {
                close(datafd);
+       }
+       if (data.data != NULL) {
+               gnutls_free(data.data);
+       }
        return privkey;
 }