changeset 30632:f1cec1134dd1

maint: Merge stable to default.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 11 Jan 2022 20:43:58 +0100
parents b55189efd92a (current diff) 51770116f835 (diff)
children 36d940c58c2e
files libinterp/corefcn/sysdep.cc
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/sysdep.cc	Tue Jan 11 19:25:24 2022 +0100
+++ b/libinterp/corefcn/sysdep.cc	Tue Jan 11 20:43:58 2022 +0100
@@ -951,9 +951,10 @@
     else if (type == REG_SZ || type == REG_EXPAND_SZ)
       {
         // strings in registry might not be zero terminated
+        wchar_t *dataw = reinterpret_cast<wchar_t *> (data);
+        DWORD lengthw = length / sizeof (wchar_t);
         std::wstring reg_string
-          = std::wstring (reinterpret_cast<wchar_t *> (data),
-                          length / sizeof (wchar_t));
+          = std::wstring (dataw, lengthw - (dataw[lengthw-1]==0));
         value = string_vector (sys::u8_from_wstring (reg_string));
       }