diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 31502aa103e..f2b8dc2702b 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -1403,9 +1403,12 @@ char * CDECL _mktemp(char *pattern) int id; char letter = 'a'; + if(!pattern) + return NULL; + while(*pattern) numX = (*pattern++ == 'X')? numX + 1 : 0; - if (numX < 5) + if (numX < 6) return NULL; pattern--; id = GetCurrentProcessId(); @@ -1420,8 +1423,7 @@ char * CDECL _mktemp(char *pattern) do { *pattern = letter++; - if (GetFileAttributesA(retVal) == INVALID_FILE_ATTRIBUTES && - GetLastError() == ERROR_FILE_NOT_FOUND) + if (GetFileAttributesA(retVal) == INVALID_FILE_ATTRIBUTES) return retVal; } while(letter <= 'z'); return NULL;