X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fextract.c;h=f1fcd0f86b5079b9ef020a03e35287c2edfbf831;hp=b1f62b1268ddf02434829bccd416bdd133724c35;hb=34e06fc9cab546816311404aa2e3cf680d137267;hpb=290ada296b4be9bb48687a8e2bf6222b5c2daad7 diff --git a/src/extract.c b/src/extract.c index b1f62b12..f1fcd0f8 100644 --- a/src/extract.c +++ b/src/extract.c @@ -1171,6 +1171,7 @@ create_temporary_file(struct filedes *fd_ret, tchar **name_ret) { tchar *name; int raw_fd; + int open_flags; retry: name = ttempnam(NULL, T("wimlib")); @@ -1179,7 +1180,11 @@ retry: return WIMLIB_ERR_NOMEM; } - raw_fd = topen(name, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, 0600); + open_flags = O_WRONLY | O_CREAT | O_EXCL | O_BINARY; +#ifdef __WIN32__ + open_flags |= _O_SHORT_LIVED; +#endif + raw_fd = topen(name, open_flags, 0600); if (raw_fd < 0) { if (errno == EEXIST) {