mirror of
https://github.com/reactos/reactos.git
synced 2026-07-06 14:44:24 +08:00
fix some bugs in regedit
like alloca -> HeapAlloc + HeapFree svn path=/trunk/; revision=18544
This commit is contained in:
@@ -1620,17 +1620,26 @@ LONG RegRenameKey(HKEY hKey, LPCTSTR lpSubKey, LPCTSTR lpNewName)
|
||||
{
|
||||
LPCTSTR s;
|
||||
LPTSTR lpNewSubKey;
|
||||
LONG Ret = 0;
|
||||
|
||||
s = _tcsrchr(lpSubKey, '\\');
|
||||
if (s)
|
||||
{
|
||||
s++;
|
||||
lpNewSubKey = (LPTSTR) alloca((s - lpSubKey + _tcslen(lpNewName) + 1) * sizeof(TCHAR));
|
||||
memcpy(lpNewSubKey, lpSubKey, (s - lpSubKey) * sizeof(TCHAR));
|
||||
_tcscpy(lpNewSubKey + (s - lpSubKey), lpNewName);
|
||||
lpNewName = lpNewSubKey;
|
||||
lpNewSubKey = (LPTSTR) HeapAlloc(GetProcessHeap(), 0, (s - lpSubKey + _tcslen(lpNewName) + 1) * sizeof(TCHAR));
|
||||
if (lpNewName != NULL) {
|
||||
memcpy(lpNewSubKey, lpSubKey, (s - lpSubKey) * sizeof(TCHAR));
|
||||
_tcscpy(lpNewSubKey + (s - lpSubKey), lpNewName);
|
||||
lpNewName = lpNewSubKey;
|
||||
}
|
||||
}
|
||||
return RegMoveKey(hKey, lpNewName, hKey, lpSubKey);
|
||||
if (lpNewName != NULL) {
|
||||
Ret = RegMoveKey(hKey, lpNewName, hKey, lpSubKey);
|
||||
if (s) {
|
||||
HeapFree(GetProcessHeap(), 0, lpNewSubKey);
|
||||
}
|
||||
}
|
||||
return Ret;
|
||||
}
|
||||
|
||||
LONG RegRenameValue(HKEY hKey, LPCTSTR lpSubKey, LPCTSTR lpDestValue, LPCTSTR lpSrcValue)
|
||||
|
||||
@@ -295,7 +295,7 @@ RegKeyEditPermissions(HWND hWndOwner,
|
||||
LPCTSTR lpMachine,
|
||||
LPCTSTR lpKeyName)
|
||||
{
|
||||
BOOL Result;
|
||||
BOOL Result = FALSE;
|
||||
LPWSTR Machine, KeyName;
|
||||
HKEY hInfoKey;
|
||||
LPREGKEYSECURITY RegKeySecurity;
|
||||
|
||||
Reference in New Issue
Block a user