From 3aae85b431d0f787c5ae3e3b85a815ca5bfe62d1 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Thu, 14 Jul 2005 18:16:57 +0000 Subject: [PATCH] Fix a weird bug in piping in some case if you pipe to no exists >pipe: then to a exists >pipe: it did make cmd crash for createfile only SetLastErrror when it fails. and the old one was in the loop. to solv it is to rest the GetLastError code before it is call. svn path=/trunk/; revision=16562 --- reactos/subsys/system/cmd/cmd.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/reactos/subsys/system/cmd/cmd.c b/reactos/subsys/system/cmd/cmd.c index 4666b290308..246b91cd3fe 100644 --- a/reactos/subsys/system/cmd/cmd.c +++ b/reactos/subsys/system/cmd/cmd.c @@ -669,14 +669,20 @@ VOID ParseCommandLine (LPTSTR cmd) { SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE}; - /* Create unique temporary file name */ + + + /* Create unique temporary file name */ GetTempFileName (szTempPath, _T("CMD"), 0, szFileName[1]); + /* we need make sure the LastError msg is zero before calling CreateFile */ + SetLastError(0); + /* Set current stdout to temporary file */ hFile[1] = CreateFile (szFileName[1], GENERIC_WRITE, 0, &sa, TRUNCATE_EXISTING, FILE_ATTRIBUTE_TEMPORARY, NULL); - if (hFile[1] == INVALID_HANDLE_VALUE) - { + + if (hFile[1] == INVALID_HANDLE_VALUE) + { LoadString(CMD_ModuleHandle, STRING_CMD_ERROR2, szMsg, RC_STRING_MAX_SIZE); ConErrPrintf(szMsg); return;