changeset 21448:06a2f9245a11

avoid possible memory leak in idx_vector_rep constructor (bug #47372) * idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep): Wrap pointer to allocated memory in std::unique_vector object.
author John W. Eaton <jwe@octave.org>
date Mon, 14 Mar 2016 23:12:22 -0400
parents ac1e50cfc9ed
children 65e24ba4ca2d
files liboctave/array/idx-vector.cc
diffstat 1 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/array/idx-vector.cc	Mon Mar 14 23:10:53 2016 -0400
+++ b/liboctave/array/idx-vector.cc	Mon Mar 14 23:12:22 2016 -0400
@@ -303,13 +303,12 @@
 {
   if (len != 0)
     {
-      octave_idx_type *d = new octave_idx_type [len];
+      std::unique_ptr<octave_idx_type []> d (new octave_idx_type [len]);
+
       for (octave_idx_type i = 0; i < len; i++)
         d[i] = convert_index (nda.xelem (i), err, ext);
-      data = d;
 
-      if (err)
-        delete [] data;
+      data = d.release ();
     }
 }