diff options
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/fileutil.cpp')
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/fileutil.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/fileutil.cpp b/src/libs/dutil/WixToolset.DUtil/fileutil.cpp index 9f68ee52..ac407916 100644 --- a/src/libs/dutil/WixToolset.DUtil/fileutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/fileutil.cpp | |||
@@ -1284,21 +1284,18 @@ extern "C" HRESULT DAPI FileCreateTempW( | |||
1284 | Assert(wzPrefix && *wzPrefix); | 1284 | Assert(wzPrefix && *wzPrefix); |
1285 | HRESULT hr = E_FAIL; | 1285 | HRESULT hr = E_FAIL; |
1286 | 1286 | ||
1287 | WCHAR wzTempPath[MAX_PATH]; | 1287 | LPWSTR pwzTempPath = NULL; |
1288 | DWORD cchTempPath = countof(wzTempPath); | ||
1289 | LPWSTR pwzTempFile = NULL; | 1288 | LPWSTR pwzTempFile = NULL; |
1290 | 1289 | ||
1291 | HANDLE hTempFile = INVALID_HANDLE_VALUE; | 1290 | HANDLE hTempFile = INVALID_HANDLE_VALUE; |
1292 | int i = 0; | 1291 | int i = 0; |
1293 | 1292 | ||
1294 | if (!::GetTempPathW(cchTempPath, wzTempPath)) | 1293 | hr = PathGetTempPath(&pwzTempPath, NULL); |
1295 | { | 1294 | FileExitOnFailure(hr, "failed to get temp path"); |
1296 | FileExitOnLastError(hr, "failed to get temp path"); | ||
1297 | } | ||
1298 | 1295 | ||
1299 | for (i = 0; i < 1000 && INVALID_HANDLE_VALUE == hTempFile; ++i) | 1296 | for (i = 0; i < 1000 && INVALID_HANDLE_VALUE == hTempFile; ++i) |
1300 | { | 1297 | { |
1301 | hr = StrAllocFormatted(&pwzTempFile, L"%s%s%05d.%s", wzTempPath, wzPrefix, i, wzExtension); | 1298 | hr = StrAllocFormatted(&pwzTempFile, L"%s%s%05d.%s", pwzTempPath, wzPrefix, i, wzExtension); |
1302 | FileExitOnFailure(hr, "failed to allocate memory for temp filename"); | 1299 | FileExitOnFailure(hr, "failed to allocate memory for temp filename"); |
1303 | 1300 | ||
1304 | hTempFile = ::CreateFileW(pwzTempFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); | 1301 | hTempFile = ::CreateFileW(pwzTempFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); |
@@ -1330,6 +1327,7 @@ extern "C" HRESULT DAPI FileCreateTempW( | |||
1330 | LExit: | 1327 | LExit: |
1331 | ReleaseFile(hTempFile); | 1328 | ReleaseFile(hTempFile); |
1332 | ReleaseStr(pwzTempFile); | 1329 | ReleaseStr(pwzTempFile); |
1330 | ReleaseStr(pwzTempPath); | ||
1333 | 1331 | ||
1334 | return hr; | 1332 | return hr; |
1335 | } | 1333 | } |