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