From 708d2a1e64317a9537b004b1dc4fc03811a46a78 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Wed, 24 Mar 2010 19:52:00 +0000
Subject: [PATCH] 	* regtool.cc (find_key): Fix allocation size of
 "value".

---
 winsup/utils/ChangeLog  | 4 ++++
 winsup/utils/regtool.cc | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 834bf1a6a..a354d5170 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,3 +1,7 @@
+2010-03-24  Corinna Vinschen  <corinna@vinschen.de>
+
+	* regtool.cc (find_key): Fix allocation size of "value".
+
 2010-03-23  Corinna Vinschen  <corinna@vinschen.de>
 
 	* locale.cc (add_locale_alias_locales): Always use loc_num at function
diff --git a/winsup/utils/regtool.cc b/winsup/utils/regtool.cc
index 487e779db..d8a492c37 100644
--- a/winsup/utils/regtool.cc
+++ b/winsup/utils/regtool.cc
@@ -377,7 +377,7 @@ find_key (int howmanyparts, REGSAM access, int option = 0)
 	  if (value)
 	    free (value);
 	  len = mbstowcs (NULL, n, 0) + 1;
-	  value = (wchar_t *) malloc (len);
+	  value = (wchar_t *) malloc (len * sizeof (wchar_t));
 	  mbstowcs (value, n, len);
 	  return;
 	}
@@ -387,7 +387,7 @@ find_key (int howmanyparts, REGSAM access, int option = 0)
 	  if (value)
 	    free (value);
 	  len = mbstowcs (NULL, e + 1, 0) + 1;
-	  value = (wchar_t *) malloc (len);
+	  value = (wchar_t *) malloc (len * sizeof (wchar_t));
 	  mbstowcs (value, e + 1, len);
 	}
     }