Piotr Caban : msvcrt: Free fd entries with incorrect HANDLE value.
Alexandre Julliard
julliard at winehq.org
Thu Oct 6 17:24:31 CDT 2011
Module: wine
Branch: master
Commit: c867f3324ec6fd1330c8b3228bc5db79f0b4833c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c867f3324ec6fd1330c8b3228bc5db79f0b4833c
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Oct 6 20:13:38 2011 +0200
msvcrt: Free fd entries with incorrect HANDLE value.
---
dlls/msvcrt/file.c | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index ecbec34..90e0d80 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -797,18 +797,15 @@ int CDECL MSVCRT__close(int fd)
LOCK_FILES();
hand = msvcrt_fdtoh(fd);
TRACE(":fd (%d) handle (%p)\n",fd,hand);
- if (hand == INVALID_HANDLE_VALUE)
- ret = -1;
- else if (!CloseHandle(hand))
- {
- WARN(":failed-last error (%d)\n",GetLastError());
- msvcrt_set_errno(GetLastError());
+ if (!msvcrt_is_valid_fd(fd)) {
ret = -1;
- }
- else
- {
+ } else {
msvcrt_free_fd(fd);
- ret = 0;
+ ret = CloseHandle(hand) ? 0 : -1;
+ if (ret) {
+ WARN(":failed-last error (%d)\n",GetLastError());
+ msvcrt_set_errno(GetLastError());
+ }
}
UNLOCK_FILES();
TRACE(":ok\n");
More information about the wine-cvs
mailing list