changeset 17666:ea1a1eff036d

Plug another memory leak in base64_decode. * liboctave/util/oct-base64.cc(octave_base64_decode): Free out variable before calling error handler.
author Rik <rik@octave.org>
date Tue, 15 Oct 2013 22:35:15 -0700
parents 78e9bfdc544e
children 243116aa0e44
files liboctave/util/oct-base64.cc
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/util/oct-base64.cc	Tue Oct 15 21:43:00 2013 -0400
+++ b/liboctave/util/oct-base64.cc	Tue Oct 15 22:35:15 2013 -0700
@@ -38,7 +38,7 @@
 
   size_t outlen = base64_encode_alloc (inc, inlen, out);
   
-  if (! *out)
+  if (! out)
     {
       if (outlen == 0 && inlen != 0)
         (*current_liboctave_error_handler)
@@ -74,8 +74,11 @@
   else
     {
       if ((outlen % (sizeof (double) / sizeof (char))) != 0)
-        (*current_liboctave_error_handler)
-          ("base64_decode: incorrect input size");
+        {
+          ::free (out);
+          (*current_liboctave_error_handler)
+            ("base64_decode: incorrect input size");
+        }
       else
         {
           octave_idx_type len = (outlen * sizeof (char)) / sizeof (double);