Don't leak key and dh in the error path.
authortb <tb@openbsd.org>
Sun, 4 Apr 2021 19:32:26 +0000 (19:32 +0000)
committertb <tb@openbsd.org>
Sun, 4 Apr 2021 19:32:26 +0000 (19:32 +0000)
regress/lib/libcrypto/bn/mont/mont.c

index 30d5317..83d56e5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mont.c,v 1.2 2014/10/22 13:23:05 jsing Exp $  */
+/*     $OpenBSD: mont.c,v 1.3 2021/04/04 19:32:26 tb Exp $     */
 
 /*
  * Copyright (c) 2014 Miodrag Vallat.
@@ -34,8 +34,9 @@
 int
 main(int argc, char *argv[])
 {
-       DH *dh;
-       unsigned char *key, r[32 + 16 * 8];
+       DH *dh = NULL;
+       unsigned char *key = NULL;
+       unsigned char r[32 + 16 * 8];
        size_t privsz;
 
        arc4random_buf(r, sizeof(r));
@@ -67,7 +68,9 @@ main(int argc, char *argv[])
 
        return 0;
 
-err:
+ err:
        ERR_print_errors_fp(stderr);
+       free(key);
+       DH_free(dh);
        return 1;
 }