]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: fix some memleaks in test_helper code
authordjm@openbsd.org <djm@openbsd.org>
Fri, 2 Aug 2019 01:41:24 +0000 (01:41 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 2 Aug 2019 01:42:26 +0000 (11:42 +1000)
bz#3037 from Jitendra Sharma

OpenBSD-Regress-ID: 71440fa9186f5842a65ce9a27159385c6cb6f751

regress/unittests/test_helper/test_helper.c

index e7a47b265a8dbbbf8dd475c6381d4b3b36b3d815..127e76c2b1f274703f2453e1c2e56528f2118bc9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: test_helper.c,v 1.11 2018/11/23 02:53:57 dtucker Exp $        */
+/*     $OpenBSD: test_helper.c,v 1.12 2019/08/02 01:41:24 djm Exp $    */
 /*
  * Copyright (c) 2011 Damien Miller <djm@mindrot.org>
  *
@@ -391,6 +391,8 @@ assert_mem(const char *file, int line, const char *a1, const char *a2,
     const void *aa1, const void *aa2, size_t l, enum test_predicate pred)
 {
        int r;
+       char *aa1_tohex = NULL;
+       char *aa2_tohex = NULL;
 
        if (l == 0)
                return;
@@ -401,8 +403,12 @@ assert_mem(const char *file, int line, const char *a1, const char *a2,
        r = memcmp(aa1, aa2, l);
        TEST_CHECK_INT(r, pred);
        test_header(file, line, a1, a2, "STRING", pred);
-       fprintf(stderr, "%12s = %s (len %zu)\n", a1, tohex(aa1, MIN(l, 256)), l);
-       fprintf(stderr, "%12s = %s (len %zu)\n", a2, tohex(aa2, MIN(l, 256)), l);
+       aa1_tohex = tohex(aa1, MIN(l, 256));
+       aa2_tohex = tohex(aa2, MIN(l, 256));
+       fprintf(stderr, "%12s = %s (len %zu)\n", a1, aa1_tohex, l);
+       fprintf(stderr, "%12s = %s (len %zu)\n", a2, aa2_tohex, l);
+       free(aa1_tohex);
+       free(aa2_tohex);
        test_die();
 }
 
@@ -427,6 +433,7 @@ assert_mem_filled(const char *file, int line, const char *a1,
        size_t where = -1;
        int r;
        char tmp[64];
+       char *aa1_tohex = NULL;
 
        if (l == 0)
                return;
@@ -436,8 +443,10 @@ assert_mem_filled(const char *file, int line, const char *a1,
        r = memvalcmp(aa1, v, l, &where);
        TEST_CHECK_INT(r, pred);
        test_header(file, line, a1, NULL, "MEM_ZERO", pred);
+       aa1_tohex = tohex(aa1, MIN(l, 20));
        fprintf(stderr, "%20s = %s%s (len %zu)\n", a1,
-           tohex(aa1, MIN(l, 20)), l > 20 ? "..." : "", l);
+           aa1_tohex, l > 20 ? "..." : "", l);
+       free(aa1_tohex);
        snprintf(tmp, sizeof(tmp), "(%s)[%zu]", a1, where);
        fprintf(stderr, "%20s = 0x%02x (expected 0x%02x)\n", tmp,
            ((u_char *)aa1)[where], v);