From: <jc...@us...> - 2008-11-07 15:37:52
|
Revision: 1156 http://omc.svn.sourceforge.net/omc/?rev=1156&view=rev Author: jcarey Date: 2008-11-07 15:37:40 +0000 (Fri, 07 Nov 2008) Log Message: ----------- Added code to avoid validation of properties if they are NULL Modified Paths: -------------- contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c Modified: contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c =================================================================== --- contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c 2008-11-07 11:03:43 UTC (rev 1155) +++ contrib/xen-vm-builder/trunk/src/providers/vm-builder/vmcreation-data.c 2008-11-07 15:37:40 UTC (rev 1156) @@ -326,25 +326,29 @@ } /*****************************************************************************/ -static void +static int add_u8_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance, const char* prop_name) { + int cc = 0; CMPIData data = CMGetProperty(instance, prop_name, NULL); if (!CMIsNullValue(data)) { char wkbfr[32]; snprintf(wkbfr, sizeof(wkbfr), "%u,", data.value.uint8); cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0); + cc = 1; } else { cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0); } + return cc; } /*****************************************************************************/ -static void +static int add_u16_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance, const char* prop_name, CMPIData *pdata, int endstmt) { + int cc = 0; CMPIData data; const char* pnnfmt; const char* pnullfmt; @@ -364,16 +368,19 @@ char wkbfr[32]; snprintf(wkbfr, sizeof(wkbfr), pnnfmt, pdata->value.uint16); cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0); + cc = 1; } else { cmpiutilStrBuf_cat(pstrbuf, pnullfmt, 0); } + return cc; } /*****************************************************************************/ -static void +static int add_u32_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance, const char* prop_name, CMPIData* pdata) { + int cc = 0; CMPIData data; if (!pdata) { pdata = &data; @@ -384,16 +391,19 @@ char wkbfr[32]; snprintf(wkbfr, sizeof(wkbfr), "%u,", pdata->value.uint32); cmpiutilStrBuf_cat(pstrbuf, wkbfr, 0); + cc = 1; } else { cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0); } + return cc; } /*****************************************************************************/ -static void +static int add_str_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance, const char* prop_name, int endstmt) { + int cc = 0; CMPIData data; const char* pnnfmt; const char* pnullfmt; @@ -408,16 +418,19 @@ if (!CMIsNullValue(data)) { char *p = (char*) CMGetCharPtr(data.value.string); db_sql_insert(pstrbuf, pnnfmt, p); + cc = 1; } else { cmpiutilStrBuf_cat(pstrbuf, pnullfmt, 0); } + return cc; } /*****************************************************************************/ -static void +static int add_stra_prop_to_query(cmpiutilStrBuf* pstrbuf, const CMPIInstance* instance, const char* prop_name) { + int cc = 0; CMPIData data = CMGetProperty(instance, prop_name, NULL); if (!CMIsNullValue(data)) { cmpiutilStrBuf* lstrbuf = stringArray2Str(_broker, data.value.array); @@ -427,9 +440,11 @@ } else { cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0); } + cc = 1; } else { cmpiutilStrBuf_cat(pstrbuf, "NULL,", 0); } + return cc; } @@ -708,7 +723,7 @@ /*****************************************************************************/ -void +int mod_add_u16_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance, const char* prop_name, const char** properties, CMPIData* pdata) { @@ -719,7 +734,7 @@ pdata = &data; } if (!get_mod_property(modified_instance, prop_name, properties, pdata)) { - return; + return 0; } if (!CMIsNullValue((*pdata))) { snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, pdata->value.uint16); @@ -727,17 +742,18 @@ snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name); } cmpiutilStrArray_append(pstra, wkbfr); + return 1; } /*****************************************************************************/ -void +int mod_add_u8_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance, const char* prop_name, const char** properties) { char wkbfr[256]; CMPIData data; if (!get_mod_property(modified_instance, prop_name, properties, &data)) { - return; + return 0; } if (!CMIsNullValue(data)) { snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, data.value.uint8); @@ -745,16 +761,17 @@ snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name); } cmpiutilStrArray_append(pstra, wkbfr); + return 1; } /*****************************************************************************/ -void +int mod_add_str_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance, const char* prop_name, const char** properties) { CMPIData data; if (!get_mod_property(modified_instance, prop_name, properties, &data)) { - return; + return 0; } if (!CMIsNullValue(data)) { char *p = (char*) CMGetCharPtr(data.value.string); @@ -766,16 +783,17 @@ snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name); cmpiutilStrArray_append(pstra, wkbfr); } + return 1; } /*****************************************************************************/ -void +int mod_add_stra_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance, const char* prop_name, const char** properties) { CMPIData data; if (!get_mod_property(modified_instance, prop_name, properties, &data)) { - return; + return 0; } if (!CMIsNullValue(data)) { cmpiutilStrBuf* lstrbuf = stringArray2Str(_broker, data.value.array); @@ -794,10 +812,11 @@ snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name); cmpiutilStrArray_append(pstra, wkbfr); } + return 1; } /*****************************************************************************/ -void +int mod_add_u32_prop(cmpiutilStrArray* pstra, const CMPIInstance* modified_instance, const char* prop_name, const char** properties, CMPIData* pdata) { @@ -808,7 +827,7 @@ pdata = &data; } if (!get_mod_property(modified_instance, prop_name, properties, pdata)) { - return; + return 0; } if (!CMIsNullValue((*pdata))) { snprintf(wkbfr, sizeof(wkbfr), "%s=%u", prop_name, pdata->value.uint32); @@ -816,6 +835,7 @@ snprintf(wkbfr, sizeof(wkbfr), "%s=NULL", prop_name); } cmpiutilStrArray_append(pstra, wkbfr); + return 1; } /****************************************************************************** @@ -897,20 +917,23 @@ return status; } - mod_add_u16_prop(pstra, modified_instance, "AutoMaticRecoveryAction", properties, &data); - if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticRecoveryAction", properties, &data)) { + if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - mod_add_u16_prop(pstra, modified_instance, "AutoMaticShutdownAction", properties, &data); - if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticShutdownAction", properties, &data)) { + if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - mod_add_u16_prop(pstra, modified_instance, "AutoMaticStartupAction", properties, &data); - if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "AutoMaticStartupAction", properties, &data)) { + if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } if (get_mod_property(modified_instance, "AutoMaticStartupActionDelay", properties, &data)) { if (!CMIsNullValue(data)) { @@ -932,10 +955,11 @@ "AutomaticStartupActionSequenceNumber", properties, NULL); mod_add_str_prop(pstra, modified_instance, "CPUArchitecture", properties); mod_add_str_prop(pstra, modified_instance, "Caption", properties); - mod_add_u16_prop(pstra, modified_instance, "ChangeableType", properties, &data); - if (valid_changeable_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "ChangeableType", properties, &data)) { + if (valid_changeable_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } mod_add_str_prop(pstra, modified_instance, "ConfigurationDataRoot", properties); mod_add_str_prop(pstra, modified_instance, "ConfigurationFile", properties); @@ -962,15 +986,17 @@ mod_add_str_prop(pstra, modified_instance, "ElementName", properties); mod_add_stra_prop(pstra, modified_instance, "ExtraConfigInfo", properties); mod_add_str_prop(pstra, modified_instance, "ExtraInstallArgs", properties); - mod_add_u32_prop(pstra, modified_instance, "GraphicsType", properties, &data); - if (valid_graphics_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u32_prop(pstra, modified_instance, "GraphicsType", properties, &data)) { + if (valid_graphics_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - mod_add_u32_prop(pstra, modified_instance, "GraphicsViewerType", properties, &data); - if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u32_prop(pstra, modified_instance, "GraphicsViewerType", properties, &data)) { + if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } mod_add_str_prop(pstra, modified_instance, "LogDataRoot", properties); mod_add_u32_prop(pstra, modified_instance, "MaxMemory", properties, NULL); @@ -978,10 +1004,11 @@ mod_add_stra_prop(pstra, modified_instance, "Nics", properties); mod_add_stra_prop(pstra, modified_instance, "Notes", properties); mod_add_u8_prop(pstra, modified_instance, "NumVCPUs", properties); - mod_add_u32_prop(pstra, modified_instance, "OSType", properties, &data); - if (valid_os_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u32_prop(pstra, modified_instance, "OSType", properties, &data)) { + if (valid_os_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } mod_add_str_prop(pstra, modified_instance, "RecoveryFile", properties); mod_add_str_prop(pstra, modified_instance, "ResponseFile", properties); @@ -991,32 +1018,32 @@ mod_add_str_prop(pstra, modified_instance, "SwapFileDataRoot", properties); mod_add_u32_prop(pstra, modified_instance, "VNCPort", properties, NULL); mod_add_str_prop(pstra, modified_instance, "VNCPassword", properties); - mod_add_u32_prop(pstra, modified_instance, "VirtType", properties, &data); - if (valid_virt_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u32_prop(pstra, modified_instance, "VirtType", properties, &data)) { + if (valid_virt_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } mod_add_str_prop(pstra, modified_instance, "VirtualSystemIdentifier", properties); mod_add_str_prop(pstra, modified_instance, "VirtualSystemType", properties); - - mod_add_u16_prop(pstra, modified_instance, "OnPowerOff", properties, &data); - if (valid_on_power_off(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "OnPowerOff", properties, &data)) { + if (valid_on_power_off(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - - mod_add_u16_prop(pstra, modified_instance, "OnReboot", properties, &data); - if (valid_on_reboot(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "OnReboot", properties, &data)) { + if (valid_on_reboot(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - - mod_add_u16_prop(pstra, modified_instance, "OnCrash", properties, &data); - if (valid_on_crash(&data, &status) != CMPI_RC_OK) { - cmpiutilStrArray_destroy(pstra); - return status; + if (mod_add_u16_prop(pstra, modified_instance, "OnCrash", properties, &data)) { + if (valid_on_crash(&data, &status) != CMPI_RC_OK) { + cmpiutilStrArray_destroy(pstra); + return status; + } } - pstrbuf = cmpiutilStrBuf_create(); if (!pstrbuf) { CMSetStatusWithChars(_broker, &status, CMPI_RC_ERROR_SYSTEM, @@ -1106,20 +1133,23 @@ cmpiutilStrBuf_cat(pstrbuf, ") VALUES (", 0); db_sql_insert(pstrbuf, "%Q,", iid); - add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticRecoveryAction", &data, 0); - if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticRecoveryAction", &data, 0)) { + if (valid_automatic_recovery_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } - add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticShutdownAction", &data, 0); - if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticShutdownAction", &data, 0)) { + if (valid_automatic_shutdown_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } - add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupAction", &data, 0); - if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupAction", &data, 0)) { + if (valid_automatic_startup_action(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } data = CMGetProperty(newinstance, "AutoMaticStartupActionDelay", NULL); if (!CMIsNullValue(data)) { @@ -1141,10 +1171,11 @@ add_u16_prop_to_query(pstrbuf, newinstance, "AutoMaticStartupActionSequenceNumber", NULL, 0); add_str_prop_to_query(pstrbuf, newinstance, "CPUArchitecture", 0); add_str_prop_to_query(pstrbuf, newinstance, "Caption", 0); - add_u16_prop_to_query(pstrbuf, newinstance, "ChangeableType", &data, 0); - if (valid_changeable_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "ChangeableType", &data, 0)) { + if (valid_changeable_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } add_str_prop_to_query(pstrbuf, newinstance, "ConfigurationDataRoot", 0); add_str_prop_to_query(pstrbuf, newinstance, "ConfigurationFile", 0); @@ -1173,15 +1204,17 @@ add_str_prop_to_query(pstrbuf, newinstance, "ElementName", 0); add_stra_prop_to_query(pstrbuf, newinstance, "ExtraConfigInfo"); add_str_prop_to_query(pstrbuf, newinstance, "ExtraInstallArgs", 0); - add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsType", &data); - if (valid_graphics_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsType", &data)) { + if (valid_graphics_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } - add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsViewerType", &data); - if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u32_prop_to_query(pstrbuf, newinstance, "GraphicsViewerType", &data)) { + if (valid_graphics_viewer_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } add_str_prop_to_query(pstrbuf, newinstance, "LogDataRoot", 0); add_u32_prop_to_query(pstrbuf, newinstance, "MaxMemory", NULL); @@ -1189,10 +1222,11 @@ add_stra_prop_to_query(pstrbuf, newinstance, "Nics"); add_stra_prop_to_query(pstrbuf, newinstance, "Notes"); add_u8_prop_to_query(pstrbuf, newinstance, "NumVCPUs"); - add_u32_prop_to_query(pstrbuf, newinstance, "OSType", &data); - if (valid_os_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u32_prop_to_query(pstrbuf, newinstance, "OSType", &data)) { + if (valid_os_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } add_str_prop_to_query(pstrbuf, newinstance, "RecoveryFile", 0); add_str_prop_to_query(pstrbuf, newinstance, "ResponseFile", 0); @@ -1202,27 +1236,31 @@ add_str_prop_to_query(pstrbuf, newinstance, "SwapFileDataRoot", 0); add_u32_prop_to_query(pstrbuf, newinstance, "VNCPort", NULL); add_str_prop_to_query(pstrbuf, newinstance, "VNCPassword", 0); - add_u32_prop_to_query(pstrbuf, newinstance, "VirtType", &data); - if (valid_virt_type(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u32_prop_to_query(pstrbuf, newinstance, "VirtType", &data)) { + if (valid_virt_type(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } add_str_prop_to_query(pstrbuf, newinstance, "VirtualSystemIdentifier", 0); add_str_prop_to_query(pstrbuf, newinstance, "VirtualSystemType", 0); - add_u16_prop_to_query(pstrbuf, newinstance, "OnPowerOff", &data, 0); - if (valid_on_power_off(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "OnPowerOff", &data, 0)) { + if (valid_on_power_off(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } - add_u16_prop_to_query(pstrbuf, newinstance, "OnReboot", &data, 0); - if (valid_on_reboot(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "OnReboot", &data, 0)) { + if (valid_on_reboot(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } - add_u16_prop_to_query(pstrbuf, newinstance, "OnCrash", &data, 1); - if (valid_on_crash(&data, &status) != CMPI_RC_OK) { - cmpiutilStrBuf_destroy(pstrbuf); - return status; + if (add_u16_prop_to_query(pstrbuf, newinstance, "OnCrash", &data, 1)) { + if (valid_on_crash(&data, &status) != CMPI_RC_OK) { + cmpiutilStrBuf_destroy(pstrbuf); + return status; + } } cmpiutilStrBuf_cat(pstrbuf, ");", 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |