fixed buffer overflow
removed useless LocalUnlock
fixed memory leak
Modified: trunk/reactos/subsys/system/regedit/hexedit.c
Modified: trunk/reactos/subsys/system/regedit/listview.c
Modified: trunk/reactos/subsys/system/regedit/treeview.c

Modified: trunk/reactos/subsys/system/regedit/hexedit.c
--- trunk/reactos/subsys/system/regedit/hexedit.c	2005-10-17 13:57:40 UTC (rev 18520)
+++ trunk/reactos/subsys/system/regedit/hexedit.c	2005-10-17 15:17:54 UTC (rev 18521)
@@ -517,7 +517,7 @@
 {
   if(hed->hBuffer)
   {
-    while(LocalUnlock(hed->hBuffer));
+    //while(LocalUnlock(hed->hBuffer));
     LocalFree(hed->hBuffer);
   }
 

Modified: trunk/reactos/subsys/system/regedit/listview.c
--- trunk/reactos/subsys/system/regedit/listview.c	2005-10-17 13:57:40 UTC (rev 18520)
+++ trunk/reactos/subsys/system/regedit/listview.c	2005-10-17 15:17:54 UTC (rev 18521)
@@ -223,7 +223,7 @@
                 LPTSTR strBinary;
                 if(dwCount > 0)
                 {
-                    strBinary = HeapAlloc(GetProcessHeap(), 0, (dwCount * sizeof(TCHAR) * 3) + 1);
+                    strBinary = HeapAlloc(GetProcessHeap(), 0, (dwCount * sizeof(TCHAR) * 3) + sizeof(TCHAR));
                     for (i = 0; i < dwCount; i++)
                     {
                         wsprintf( strBinary + i*3, _T("%02X "), pData[i] );

Modified: trunk/reactos/subsys/system/regedit/treeview.c
--- trunk/reactos/subsys/system/regedit/treeview.c	2005-10-17 13:57:40 UTC (rev 18520)
+++ trunk/reactos/subsys/system/regedit/treeview.c	2005-10-17 15:17:54 UTC (rev 18521)
@@ -181,9 +181,9 @@
         goto done;
     }
     tvItem.cchTextMax = dwMaxSubKeyLen;
-    if (!(tvItem.pszText = HeapAlloc(GetProcessHeap(), 0, dwMaxSubKeyLen * sizeof(TCHAR)))) {
+    /*if (!(tvItem.pszText = HeapAlloc(GetProcessHeap(), 0, dwMaxSubKeyLen * sizeof(TCHAR)))) {
         goto done;
-    }
+    }*/
 
     /* Get all of the tree node siblings in one contiguous block of memory */
     {