Piotr Caban : msvcrt: Fixed tmpfile implementation.
Alexandre Julliard
julliard at winehq.org
Tue Oct 16 15:27:47 CDT 2012
Module: wine
Branch: master
Commit: c00702cd6e5110202a02434a69efbacf6152ffdb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c00702cd6e5110202a02434a69efbacf6152ffdb
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Oct 16 17:23:04 2012 +0200
msvcrt: Fixed tmpfile implementation.
---
dlls/msvcrt/file.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 59b7eb8..d9ce987 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -3754,16 +3754,20 @@ MSVCRT_FILE* CDECL MSVCRT_tmpfile(void)
MSVCRT_FILE* file = NULL;
LOCK_FILES();
- fd = MSVCRT__open(filename, MSVCRT__O_CREAT | MSVCRT__O_BINARY | MSVCRT__O_RDWR | MSVCRT__O_TEMPORARY);
+ fd = MSVCRT__open(filename, MSVCRT__O_CREAT | MSVCRT__O_BINARY | MSVCRT__O_RDWR | MSVCRT__O_TEMPORARY,
+ MSVCRT__S_IREAD | MSVCRT__S_IWRITE);
if (fd != -1 && (file = msvcrt_alloc_fp()))
{
- if (msvcrt_init_fp(file, fd, MSVCRT__O_RDWR) == -1)
+ if (msvcrt_init_fp(file, fd, MSVCRT__IORW) == -1)
{
file->_flag = 0;
file = NULL;
}
else file->_tmpfname = MSVCRT__strdup(filename);
}
+
+ if(fd != -1 && !file)
+ MSVCRT__close(fd);
UNLOCK_FILES();
return file;
}
More information about the wine-cvs
mailing list