PBE will be restarted and will never come up if user requests creating IMM class object class which is reserved by PBE.
This patch adds code to reject such request with SA_AIS_ERR_INVALID_PARAM. --- src/imm/agent/imma_om_api.cc | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/imm/agent/imma_om_api.cc b/src/imm/agent/imma_om_api.cc index 7155799..415183c 100644 --- a/src/imm/agent/imma_om_api.cc +++ b/src/imm/agent/imma_om_api.cc @@ -55,7 +55,6 @@ static bool immOmIsLoader = false; static const char *sysaClName = SA_IMM_ATTR_CLASS_NAME; static const char *sysaAdmName = SA_IMM_ATTR_ADMIN_OWNER_NAME; static const char *sysaImplName = SA_IMM_ATTR_IMPLEMENTER_NAME; - static int imma_om_resurrect(IMMA_CB *cb, IMMA_CLIENT_NODE *cl_node, bool *locked); static SaAisErrorT imma_finalizeCcb(SaImmCcbHandleT ccbHandle, @@ -4795,6 +4794,27 @@ SaAisErrorT saImmOmAdminOperationContinuationClear_o3( return SA_AIS_ERR_NOT_SUPPORTED; } +static bool is_reserved_class(const char* name) { + const char* system_class[] = { + "attr_def", + "attr_dflt", + "ccb_commits", + "classes", + "objects", + "objects_blob_multi", + "objects_int_multi", + "objects_real_multi", + "objects_text_multi", + "pbe_rep_version" + }; + + size_t len = sizeof(system_class)/sizeof(system_class[0]); + for (size_t i = 0; i < len; i++) { + if (!strcmp(name, system_class[i])) return true; + } + return false; +} + SaAisErrorT saImmOmClassCreate_2( SaImmHandleT immHandle, const SaImmClassNameT className, SaImmClassCategoryT classCategory, @@ -4823,6 +4843,11 @@ SaAisErrorT saImmOmClassCreate_2( return SA_AIS_ERR_INVALID_PARAM; } + if (is_reserved_class(className)) { + TRACE("The class name `%s` is reserved!", className); + return SA_AIS_ERR_INVALID_PARAM; + } + attr = attrDefinitions[0]; for (i = 0; attr != 0; attr = attrDefinitions[++i]) { if (attr->attrName == NULL) { -- 1.9.1 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel