Christoph von Wittich : msi: Fix process token leak.

Alexandre Julliard julliard at winehq.org
Mon Jan 21 05:58:54 CST 2008


Module: wine
Branch: master
Commit: 007833f1302dff64dcdf1c58332b2f086eef5dd3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=007833f1302dff64dcdf1c58332b2f086eef5dd3

Author: Christoph von Wittich <Christoph at ApiViewer.de>
Date:   Sun Jan 20 17:58:40 2008 +0100

msi: Fix process token leak.

---

 dlls/msi/registry.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c
index 12d2c9a..bf06d9d 100644
--- a/dlls/msi/registry.c
+++ b/dlls/msi/registry.c
@@ -478,13 +478,17 @@ static UINT get_user_sid(LPWSTR *usersid)
         return ERROR_FUNCTION_FAILED;
 
     size = sizeof(buf);
-    if (!GetTokenInformation(token, TokenUser, (void *)buf, size, &size))
+    if (!GetTokenInformation(token, TokenUser, (void *)buf, size, &size)) {
+        CloseHandle(token);
         return ERROR_FUNCTION_FAILED;
+    }
 
     user = (PTOKEN_USER)buf;
-    if (!ConvertSidToStringSidW(user->User.Sid, usersid))
+    if (!ConvertSidToStringSidW(user->User.Sid, usersid)) {
+        CloseHandle(token);
         return ERROR_FUNCTION_FAILED;
-
+    }
+    CloseHandle(token);
     return ERROR_SUCCESS;
 }
 




More information about the wine-cvs mailing list