diff --git a/reactos/lib/crt/stdlib/fullpath.c b/reactos/lib/crt/stdlib/fullpath.c index 0ed77c88265..61d6d114c66 100644 --- a/reactos/lib/crt/stdlib/fullpath.c +++ b/reactos/lib/crt/stdlib/fullpath.c @@ -17,8 +17,16 @@ _TCHAR* _tfullpath(_TCHAR* absPath, const _TCHAR* relPath, size_t maxLength) { _TCHAR* lpFilePart; + DWORD copied; - if (GetFullPathName(relPath,maxLength,absPath,&lpFilePart) == 0) + if (!absPath) + { + maxLength = MAX_PATH; + absPath = malloc(maxLength); + } + + copied = GetFullPathName(relPath,maxLength,absPath,&lpFilePart); + if (copied == 0 || copied > maxLength) return NULL; return absPath;