Author: janderwald
Date: Sun Dec 13 17:05:15 2009
New Revision: 44563
URL:
http://svn.reactos.org/svn/reactos?rev=44563&view=rev
Log:
[REG]
- Fix a memory leak and bug in the deletion routine. If the buffer value_name was had been
smaller than the longest key, then deletion of all values would have failed.
- Fixed by Amine Khaldi
[XCOPY]
- Remove unnecessary assignment
- By Amine Khaldi
Modified:
trunk/reactos/base/applications/cmdutils/reg/reg.c
trunk/reactos/base/applications/cmdutils/xcopy/xcopy.c
Modified: trunk/reactos/base/applications/cmdutils/reg/reg.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils…
==============================================================================
--- trunk/reactos/base/applications/cmdutils/reg/reg.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/cmdutils/reg/reg.c [iso-8859-1] Sun Dec 13 17:05:15
2009
@@ -295,20 +295,24 @@
return 1;
}
maxValue++;
+
szValue = HeapAlloc(GetProcessHeap(),0,maxValue*sizeof(WCHAR));
+ if (!szValue) return 1;
while (1)
{
count = maxValue;
- rc = RegEnumValueW(subkey, 0, value_name, &count, NULL, NULL, NULL,
NULL);
+ rc = RegEnumValueW(subkey, 0, szValue, &count, NULL, NULL, NULL, NULL);
if (rc == ERROR_SUCCESS)
{
- rc = RegDeleteValueW(subkey,value_name);
+ rc = RegDeleteValueW(subkey,szValue);
if (rc != ERROR_SUCCESS)
break;
}
else break;
}
+
+ HeapFree(GetProcessHeap(), 0, szValue);
if (rc != ERROR_SUCCESS)
{
/* FIXME delete failed */
Modified: trunk/reactos/base/applications/cmdutils/xcopy/xcopy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils…
==============================================================================
--- trunk/reactos/base/applications/cmdutils/xcopy/xcopy.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/cmdutils/xcopy/xcopy.c [iso-8859-1] Sun Dec 13
17:05:15 2009
@@ -261,10 +261,10 @@
WINE_TRACE("Destination : '%s'\n",
wine_dbgstr_w(supplieddestination));
/* Extract required information from source specification */
- rc = XCOPY_ProcessSourceParm(suppliedsource, sourcestem, sourcespec, flags);
+ XCOPY_ProcessSourceParm(suppliedsource, sourcestem, sourcespec, flags);
/* Extract required information from destination specification */
- rc = XCOPY_ProcessDestParm(supplieddestination, destinationstem,
+ XCOPY_ProcessDestParm(supplieddestination, destinationstem,
destinationspec, sourcespec, flags);
/* Trace out the resulting information */