[KERNEL32] ReplaceFileW:
[reactos.git] / reactos / dll / win32 / kernel32 / file / file.c
index 838741f..cdbafd0 100644 (file)
@@ -239,7 +239,6 @@ OpenFile(LPCSTR lpFileName,
                return HFILE_ERROR;
        }
 
-    lpReOpenBuff->cBytes = sizeof(OFSTRUCT);
     lpReOpenBuff->nErrCode = 0;
 
        if (uStyle & OF_REOPEN) lpFileName = lpReOpenBuff->szPathName;
@@ -282,10 +281,11 @@ OpenFile(LPCSTR lpFileName,
                 return -1;
 
             default:
+                lpReOpenBuff->cBytes = sizeof(OFSTRUCT);
                 return 1;
         }
     }
-
+    lpReOpenBuff->cBytes = sizeof(OFSTRUCT);
        if ((uStyle & OF_CREATE) == OF_CREATE)
        {
                DWORD Sharing;
@@ -1906,7 +1906,8 @@ ReplaceFileW(
     )
 {
     HANDLE hReplaced = NULL, hReplacement = NULL;
-    UNICODE_STRING NtReplacedName, NtReplacementName;
+    UNICODE_STRING NtReplacedName = { 0, 0, NULL };
+    UNICODE_STRING NtReplacementName = { 0, 0, NULL };
     DWORD Error = ERROR_SUCCESS;
     NTSTATUS Status;
     BOOL Ret = FALSE;
@@ -2029,8 +2030,10 @@ Cleanup:
     if (hReplacement) NtClose(hReplacement);
     if (Buffer) RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
 
-    RtlFreeUnicodeString(&NtReplacementName);
-    RtlFreeUnicodeString(&NtReplacedName);
+    if (NtReplacementName.Buffer)
+        RtlFreeHeap(GetProcessHeap(), 0, NtReplacementName.Buffer);
+    if (NtReplacedName.Buffer)
+        RtlFreeHeap(GetProcessHeap(), 0, NtReplacedName.Buffer);
 
     /* If there was an error, set the error code */
     if(!Ret)