Hi Simon,

Thanks for accepting the patch.

Simon Josefsson writes:
There seems to be some memory leaks in the self-tests, although maybe
they are inherited from the base64 self-test?

The memory leaks seem to be related to the tests. The exact same memory leaks appear in the base64 tests as well.

free-ing some things during the test fixes it for me. See the attached patch.

Gijs
>From b6fc2265435c095a519072792348b585674608a1 Mon Sep 17 00:00:00 2001
From: Gijs van Tulder <gvtul...@gmail.com>
Date: Mon, 26 Sep 2011 19:52:59 +0200
Subject: [PATCH] Solve memory leaks in base32 and base64 tests.

---
 tests/test-base32.c |    9 +++++++++
 tests/test-base64.c |    9 +++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/tests/test-base32.c b/tests/test-base32.c
index e7cc5cc..6012885 100644
--- a/tests/test-base32.c
+++ b/tests/test-base32.c
@@ -172,6 +172,7 @@ main (void)
   ASSERT (ok);
   ASSERT (len == 16);
   ASSERT (memcmp (out, "abcdefghijklmnop", len) == 0);
+  free (p);
 
   {
     struct base32_decode_context ctx;
@@ -183,6 +184,7 @@ main (void)
     ASSERT (ok);
     ASSERT (len == strlen (in));
     ASSERT (memcmp (p, in, len) == 0);
+    free (p);
   }
 
   {
@@ -193,24 +195,30 @@ main (void)
     ASSERT (ok);
     ASSERT (len == 10);
     ASSERT (memcmp (p, "abcdefghij", len) == 0);
+    free (p);
 
     base32_decode_ctx_init (&ctx);
 
     ok = base32_decode_alloc_ctx (&ctx, "MF\n", 3, &p, &len);
     ASSERT (ok);
     ASSERT (len == 0);
+    free (p);
 
     ok = base32_decode_alloc_ctx (&ctx, "RGGZDFMZ", 8, &p, &len);
     ASSERT (ok);
     ASSERT (len == 5);
     ASSERT (memcmp (p, "abcde", len) == 0);
+    free (p);
 
     ok = base32_decode_alloc_ctx (&ctx, "TWQ2LK", 6, &p, &len);
     ASSERT (ok);
     ASSERT (len == 5);
     ASSERT (memcmp (p, "fghij", len) == 0);
+    free (p);
+
     ok = base32_decode_alloc_ctx (&ctx, "", 0, &p, &len);
     ASSERT (ok);
+    free (p);
   }
 
   {
@@ -222,6 +230,7 @@ main (void)
     ok = base32_decode_alloc_ctx (&ctx, newlineb32, strlen (newlineb32), &p, &len);
     ASSERT (ok);
     ASSERT (len == 0);
+    free (p);
   }
 
   ok = base32_decode_alloc_ctx (NULL, " ! ", 3, &p, &len);
diff --git a/tests/test-base64.c b/tests/test-base64.c
index b1979b4..41efc5a 100644
--- a/tests/test-base64.c
+++ b/tests/test-base64.c
@@ -149,6 +149,7 @@ main (void)
   ASSERT (ok);
   ASSERT (len == 7);
   ASSERT (memcmp (out, "abcdefg", len) == 0);
+  free (p);
 
   {
     struct base64_decode_context ctx;
@@ -160,6 +161,7 @@ main (void)
     ASSERT (ok);
     ASSERT (len == strlen (in));
     ASSERT (memcmp (p, in, len) == 0);
+    free (p);
   }
 
   {
@@ -170,24 +172,30 @@ main (void)
     ASSERT (ok);
     ASSERT (len == 9);
     ASSERT (memcmp (p, "abcdefghi", len) == 0);
+    free (p);
 
     base64_decode_ctx_init (&ctx);
 
     ok = base64_decode_alloc_ctx (&ctx, "YW\n", 3, &p, &len);
     ASSERT (ok);
     ASSERT (len == 0);
+    free (p);
 
     ok = base64_decode_alloc_ctx (&ctx, "JjZGVmZ2", 8, &p, &len);
     ASSERT (ok);
     ASSERT (len == 6);
     ASSERT (memcmp (p, "abcdef", len) == 0);
+    free (p);
 
     ok = base64_decode_alloc_ctx (&ctx, "hp", 2, &p, &len);
     ASSERT (ok);
     ASSERT (len == 3);
     ASSERT (memcmp (p, "ghi", len) == 0);
+    free (p);
+
     ok = base64_decode_alloc_ctx (&ctx, "", 0, &p, &len);
     ASSERT (ok);
+    free (p);
   }
 
   {
@@ -199,6 +207,7 @@ main (void)
     ok = base64_decode_alloc_ctx (&ctx, newlineb64, strlen (newlineb64), &p, &len);
     ASSERT (ok);
     ASSERT (len == 0);
+    free (p);
   }
 
   ok = base64_decode_alloc_ctx (NULL, " ! ", 3, &p, &len);
-- 
1.7.4.1

Reply via email to