From 6246647626b5fc91bba75a5f5deb36a98369f279 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Sat, 17 Dec 2005 21:13:36 +0000 Subject: [PATCH] fixed IsUserAdmin and enable the calls to it svn path=/trunk/; revision=20232 --- reactos/lib/newdev/newdev.c | 14 +++++--------- reactos/lib/setupapi/cfgmgr.c | 22 +++++++++++----------- reactos/lib/setupapi/misc.c | 2 +- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/reactos/lib/newdev/newdev.c b/reactos/lib/newdev/newdev.c index edb74b55265..23523350620 100644 --- a/reactos/lib/newdev/newdev.c +++ b/reactos/lib/newdev/newdev.c @@ -1018,16 +1018,12 @@ DevInstallW( PROPSHEETPAGE psp; BOOL ret; DWORD config_flags; - /*TCHAR buf[128];*/ - /* FIXME: Nov 2005. umpnpmgr.exe is directly calling DevInstallW in - * SYSTEM context, which is not member of the Administrators group. - * So, just ignore the test at the moment... */ - //if (!IsUserAdmin()) - //{ - // /* XP kills the process... */ - // ExitProcess(ERROR_ACCESS_DENIED); - //} + if (!IsUserAdmin()) + { + /* XP kills the process... */ + ExitProcess(ERROR_ACCESS_DENIED); + } /* Clear devinst data */ ZeroMemory(&DevInstData, sizeof(DEVINSTDATA)); diff --git a/reactos/lib/setupapi/cfgmgr.c b/reactos/lib/setupapi/cfgmgr.c index a9037c018d2..707ee157393 100644 --- a/reactos/lib/setupapi/cfgmgr.c +++ b/reactos/lib/setupapi/cfgmgr.c @@ -104,7 +104,7 @@ CONFIGRET WINAPI CMP_Report_LogOn( if (!PnpGetLocalHandles(&BindingHandle, NULL)) return CR_FAILURE; - bAdmin = TRUE; //IsUserAdmin(); + bAdmin = IsUserAdmin(); for (i = 0; i < 30; i++) { @@ -256,8 +256,8 @@ CONFIGRET WINAPI CM_Disable_DevNode_Ex( FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine); -// if (!IsUserAdmin()) -// return CR_ACCESS_DENIED; + if (!IsUserAdmin()) + return CR_ACCESS_DENIED; if (dnDevInst == 0) return CR_INVALID_DEVINST; @@ -341,8 +341,8 @@ CONFIGRET WINAPI CM_Enable_DevNode_Ex( FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine); -// if (!IsUserAdmin()) -// return CR_ACCESS_DENIED; + if (!IsUserAdmin()) + return CR_ACCESS_DENIED; if (dnDevInst == 0) return CR_INVALID_DEVINST; @@ -1921,8 +1921,8 @@ CONFIGRET WINAPI CM_Move_DevNode_Ex( FIXME("%lx %lx %lx %lx\n", dnFromDevInst, dnToDevInst, ulFlags, hMachine); -// if (!IsUserAdmin()) -// return CR_ACCESS_DENIED; + if (!IsUserAdmin()) + return CR_ACCESS_DENIED; if (dnFromDevInst == 0 || dnToDevInst == 0) return CR_INVALID_DEVNODE; @@ -2236,8 +2236,8 @@ CONFIGRET WINAPI CM_Run_Detection_Ex( TRACE("%lx %lx\n", ulFlags, hMachine); -// if (!IsUserAdmin()) -// return CR_ACCESS_DENIED; + if (!IsUserAdmin()) + return CR_ACCESS_DENIED; if (ulFlags & ~CM_DETECT_BITS) return CR_INVALID_FLAG; @@ -2616,8 +2616,8 @@ CONFIGRET WINAPI CM_Setup_DevNode_Ex( FIXME("%lx %lx %lx\n", dnDevInst, ulFlags, hMachine); -// if (!IsUserAdmin()) -// return CR_ACCESS_DENIED; + if (!IsUserAdmin()) + return CR_ACCESS_DENIED; if (dnDevInst == 0) return CR_INVALID_DEVNODE; diff --git a/reactos/lib/setupapi/misc.c b/reactos/lib/setupapi/misc.c index 76cbac68d2f..ab8ab0a5bf6 100644 --- a/reactos/lib/setupapi/misc.c +++ b/reactos/lib/setupapi/misc.c @@ -234,7 +234,7 @@ BOOL WINAPI IsUserAdmin(VOID) for (i = 0; i < lpGroups->GroupCount; i++) { - if (EqualSid(lpSid, &lpGroups->Groups[i].Sid)) + if (EqualSid(lpSid, lpGroups->Groups[i].Sid)) { bResult = TRUE; break;