BOOL
IsValidRangeList(
- _In_ PINTERNAL_RANGE_LIST pRangeList)
+ _In_opt_ PINTERNAL_RANGE_LIST pRangeList)
{
BOOL bValid = TRUE;
}
+BOOL
+IsValidLogConf(
+ _In_opt_ PLOG_CONF_INFO pLogConfInfo)
+{
+ BOOL bValid = TRUE;
+
+ if (pLogConfInfo == NULL)
+ return FALSE;
+
+ _SEH2_TRY
+ {
+ if (pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
+ bValid = FALSE;
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ bValid = FALSE;
+ }
+ _SEH2_END;
+
+ return bValid;
+}
+
+
/***********************************************************************
* CMP_GetBlockedDriverInfo [SETUPAPI.@]
*/
return CR_ACCESS_DENIED;
pLogConfInfo = (PLOG_CONF_INFO)lcLogConfToBeFreed;
- if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
+ if (!IsValidLogConf(pLogConfInfo))
return CR_INVALID_LOG_CONF;
if (ulFlags != 0)
TRACE("CM_Free_Log_Conf_Handle(%lx)\n", lcLogConf);
pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
- if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
+ if (!IsValidLogConf(pLogConfInfo))
return CR_INVALID_LOG_CONF;
HeapFree(GetProcessHeap(), 0, pLogConfInfo);
lcLogConf, pPriority, ulFlags, hMachine);
pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
- if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
+ if (!IsValidLogConf(pLogConfInfo))
return CR_INVALID_LOG_CONF;
if (pPriority == NULL)
*plcLogConf = 0;
pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
- if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
+ if (!IsValidLogConf(pLogConfInfo))
return CR_INVALID_LOG_CONF;
if (ulFlags != 0)