# HG changeset patch # User Rik # Date 1381901715 25200 # Node ID ea1a1eff036daf84ad73fbdc9c49025cd0c52379 # Parent 78e9bfdc544ea336df80ad5b113146ebf89335ab Plug another memory leak in base64_decode. * liboctave/util/oct-base64.cc(octave_base64_decode): Free out variable before calling error handler. diff -r 78e9bfdc544e -r ea1a1eff036d liboctave/util/oct-base64.cc --- 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);