From 446d36779290ae0f5f61ac3ffc551b97ac542477 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Thu, 21 Jul 2005 20:10:47 +0000 Subject: [PATCH] Add parameter checks. svn path=/trunk/; revision=16685 --- reactos/lib/setupapi/cfgmgr.c | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/reactos/lib/setupapi/cfgmgr.c b/reactos/lib/setupapi/cfgmgr.c index 143f714a01a..fe644d21a9b 100644 --- a/reactos/lib/setupapi/cfgmgr.c +++ b/reactos/lib/setupapi/cfgmgr.c @@ -341,6 +341,15 @@ CONFIGRET WINAPI CM_Get_Depth_Ex( TRACE("%p %lx %lx %lx\n", pulDepth, dnDevInst, ulFlags, hMachine); + if (pulDepth == NULL) + return CR_INVALID_POINTER; + + if (dnDevInst == 0) + return CR_INVALID_DEVINST; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + if (hMachine != NULL) { BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle; @@ -418,6 +427,15 @@ CONFIGRET WINAPI CM_Get_Device_ID_ExW( TRACE("%lx %p %ld %ld %lx\n", dnDevInst, Buffer, BufferLen, ulFlags, hMachine); + if (dnDevInst == 0) + return CR_INVALID_DEVINST; + + if (Buffer == NULL) + return CR_INVALID_POINTER; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + if (hMachine != NULL) { StringTable = ((PMACHINE_INFO)hMachine)->StringTable; @@ -560,6 +578,15 @@ CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex( TRACE("%p %lx %lx %lx\n", pulLen, dnDevInst, ulFlags, hMachine); + if (pulLen == NULL) + return CR_INVALID_POINTER; + + if (dnDevInst == 0) + return CR_INVALID_DEVINST; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + if (hMachine != NULL) { StringTable = ((PMACHINE_INFO)hMachine)->StringTable; @@ -614,6 +641,15 @@ CM_Get_DevNode_Status_Ex( TRACE("%p %p %lx %lx %lx\n", pulStatus, pulProblemNumber, dnDevInst, ulFlags, hMachine); + if (pulStatus == NULL || pulProblemNumber == NULL) + return CR_INVALID_POINTER; + + if (dnDevInst == 0) + return CR_INVALID_DEVINST; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + if (hMachine != NULL) { BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle; @@ -949,6 +985,12 @@ CONFIGRET WINAPI CM_Locate_DevNode_ExW( TRACE("%p %s %lu %lx\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine); + if (pdnDevInst == NULL) + return CR_INVALID_POINTER; + + if (ulFlags & ~CM_LOCATE_DEVNODE_BITS) + return CR_INVALID_FLAG; + if (hMachine != NULL) { BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;