Hans Leidekker : msi/tests: Fix a couple of memory leaks (valgrind).

Alexandre Julliard julliard at winehq.org
Wed Apr 30 13:32:52 CDT 2014


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Apr 30 10:21:42 2014 +0200

msi/tests: Fix a couple of memory leaks (valgrind).

---

 dlls/msi/tests/action.c     |    8 +++++---
 dlls/msi/tests/automation.c |    8 +++++---
 dlls/msi/tests/install.c    |    8 +++++---
 dlls/msi/tests/msi.c        |    8 +++++---
 dlls/msi/tests/package.c    |    8 +++++---
 5 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c
index 047854b..9f1651d 100644
--- a/dlls/msi/tests/action.c
+++ b/dlls/msi/tests/action.c
@@ -2255,20 +2255,22 @@ static void init_functionpointers(void)
 static BOOL is_process_limited(void)
 {
     SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
+    PSID Group = NULL;
     BOOL IsInGroup;
     HANDLE token;
 
     if (!pCheckTokenMembership || !pOpenProcessToken) return FALSE;
 
     if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
+                                  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
         !pCheckTokenMembership(NULL, Group, &IsInGroup))
     {
         trace("Could not check if the current user is an administrator\n");
+        FreeSid(Group);
         return FALSE;
     }
+    FreeSid(Group);
+
     if (!IsInGroup)
     {
         /* Only administrators have enough privileges for these tests */
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index 242ec63..beed6fd 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -230,20 +230,22 @@ static void init_functionpointers(void)
 static BOOL is_process_limited(void)
 {
     SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
+    PSID Group = NULL;
     BOOL IsInGroup;
     HANDLE token;
 
     if (!pCheckTokenMembership || !pOpenProcessToken) return FALSE;
 
     if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
+                                  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
         !pCheckTokenMembership(NULL, Group, &IsInGroup))
     {
         trace("Could not check if the current user is an administrator\n");
+        FreeSid(Group);
         return FALSE;
     }
+    FreeSid(Group);
+
     if (!IsInGroup)
     {
         /* Only administrators have enough privileges for these tests */
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index 603042a..2a9af85 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -2043,20 +2043,22 @@ static void init_functionpointers(void)
 static BOOL is_process_limited(void)
 {
     SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
+    PSID Group = NULL;
     BOOL IsInGroup;
     HANDLE token;
 
     if (!pCheckTokenMembership || !pOpenProcessToken) return FALSE;
 
     if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
+                                  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
         !pCheckTokenMembership(NULL, Group, &IsInGroup))
     {
         trace("Could not check if the current user is an administrator\n");
+        FreeSid(Group);
         return FALSE;
     }
+    FreeSid(Group);
+
     if (!IsInGroup)
     {
         /* Only administrators have enough privileges for these tests */
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 1d63df5..3897c24 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -175,20 +175,22 @@ static BOOL delete_pf(const char *rel_path, BOOL is_file)
 static BOOL is_process_limited(void)
 {
     SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
+    PSID Group = NULL;
     BOOL IsInGroup;
     HANDLE token;
 
     if (!pCheckTokenMembership || !pOpenProcessToken) return FALSE;
 
     if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
+                                  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
         !pCheckTokenMembership(NULL, Group, &IsInGroup))
     {
         trace("Could not check if the current user is an administrator\n");
+        FreeSid(Group);
         return FALSE;
     }
+    FreeSid(Group);
+
     if (!IsInGroup)
     {
         /* Only administrators have enough privileges for these tests */
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index d5c37ea..a0c0455 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -88,20 +88,22 @@ static void init_functionpointers(void)
 static BOOL is_process_limited(void)
 {
     SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
+    PSID Group = NULL;
     BOOL IsInGroup;
     HANDLE token;
 
     if (!pCheckTokenMembership || !pOpenProcessToken) return FALSE;
 
     if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
+                                  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
         !pCheckTokenMembership(NULL, Group, &IsInGroup))
     {
         trace("Could not check if the current user is an administrator\n");
+        FreeSid(Group);
         return FALSE;
     }
+    FreeSid(Group);
+
     if (!IsInGroup)
     {
         if (!AllocateAndInitializeSid(&NtAuthority, 2,




More information about the wine-cvs mailing list