changeset 24709:6a6108db3a6b

winqueryreg: Close registry key after use (bug #50463). * sysdep.cc (get_regkey_value): Call RegCloseKey on registry key handle after use.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 08 Feb 2018 19:56:18 +0100
parents 75090f34ffb1
children a979bb895b64
files libinterp/corefcn/sysdep.cc
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/sysdep.cc	Thu Feb 08 11:27:39 2018 -0500
+++ b/libinterp/corefcn/sysdep.cc	Thu Feb 08 19:56:18 2018 +0100
@@ -720,10 +720,16 @@
   LONG result;
   HKEY h_subkey;
 
+  octave::unwind_protect frame;
+
   result = RegOpenKeyExA (h_rootkey, subkey.c_str (), 0, KEY_READ, &h_subkey);
   if (result != ERROR_SUCCESS)
     return result;
 
+  // Cast return value to void
+  typedef void (*f_ptr)(HKEY);
+  frame.add_fcn (reinterpret_cast<f_ptr> (RegCloseKey), h_subkey);
+
   DWORD length = 0;
   result = RegQueryValueExA (h_subkey, name.c_str (), nullptr, nullptr, nullptr,
                             &length);