When called with an uninitialized or already finalized handle, saAmfPmStart_3 and saAmfResponse_4 should return SA_AIS_ERR_BAD_HANDLE instead of SA_AIS_ERR_VERSION as previously done. --- src/amf/agent/amf_agent.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/src/amf/agent/amf_agent.cc b/src/amf/agent/amf_agent.cc index 20528e9..b9191dd 100644 --- a/src/amf/agent/amf_agent.cc +++ b/src/amf/agent/amf_agent.cc @@ -2296,6 +2296,13 @@ SaAisErrorT AmfAgent::PmStart_3(SaAmfHandleT hdl, const SaNameT *comp_name, SaAisErrorT rc = SA_AIS_OK; TRACE_ENTER2("SaAmfHandleT passed is %llx", hdl); + /* Verifying the input Handle & global handle */ + if (!gl_ava_hdl || hdl > AVSV_UNS32_HDL_MAX) { + TRACE_2("Invalid SaAmfHandle passed by component: %llx", hdl); + rc = SA_AIS_ERR_BAD_HANDLE; + goto done; + } + /* Version is previously set in in initialize function */ if (!ava_B4_ver_used(0)) { TRACE_2( @@ -2844,6 +2851,13 @@ SaAisErrorT AmfAgent::Response_4(SaAmfHandleT hdl, SaInvocationT inv, SaAisErrorT rc = SA_AIS_OK; TRACE_ENTER2("SaAmfHandleT passed is %llx", hdl); + /* Verifying the input Handle & global handle */ + if (!gl_ava_hdl || hdl > AVSV_UNS32_HDL_MAX) { + TRACE_2("Invalid SaAmfHandle passed by component: %llx", hdl); + rc = SA_AIS_ERR_BAD_HANDLE; + goto done; + } + /* Version is previously set in in initialize function */ if (!ava_B4_ver_used(0)) { TRACE_2( -- 2.7.4 ------------------------------------------------------------------------------ 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