[PATCH] advapi32: Make CheckTokenMembership return FALSE for asking whether we are connected through the network

Maarten Lankhorst maarten at codeweavers.com
Tue Oct 14 13:16:14 CDT 2008


---
 dlls/advapi32/security.c |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index ca26217..5a2b3e4 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -615,10 +615,23 @@ BOOL WINAPI
 CheckTokenMembership( HANDLE TokenHandle, PSID SidToCheck,
                       PBOOL IsMember )
 {
-  FIXME("(%p %p %p) stub!\n", TokenHandle, SidToCheck, IsMember);
-
-  *IsMember = TRUE;
-  return(TRUE);
+    WCHAR *sid = NULL;
+    WCHAR network[] = { 'S','-','1','-','5','-','2',0};
+    BOOL ret = TRUE;
+    FIXME("(%p %p %p) stub!\n", TokenHandle, SidToCheck, IsMember);
+
+    ConvertSidToStringSidW(SidToCheck, &sid);
+    FIXME("Sid: %s\n", debugstr_w(sid));
+    /* We are not connected through the network in any way, but locally
+     * Internet Explorer 7 installer checks for it and bombs out if
+     * we return TRUE on asking whether we are
+     */
+    if (sid && !lstrcmpW(sid, network))
+        ret = FALSE;
+    LocalFree(sid);
+
+    *IsMember = ret;
+    return TRUE;
 }
 
 /******************************************************************************
-- 
1.5.6.5


--------------070807000101040402000403--



More information about the wine-patches mailing list