- **status**: assigned --> review
---
** [tickets:#2927] smf: crash in CcbApplyCallback() due to NULL access**
**Status:** review
**Milestone:** 5.18.09
**Created:** Mon Sep 17, 2018 10:57 AM UTC by Thuan
**Last Updated:** Mon Sep 17, 2018 10:57 AM UTC
**Owner:** Thuan
SMFD crash in following code:
src/smf/smfd/SmfImmApplierHdl.cc
static void CcbApplyCallback(SaImmOiHandleT immOiHandle, SaImmOiCcbIdT
ccbId) {
....
TRACE("%s: Read value in attributes", __FUNCTION__);
attrMod = opdata->param.modify.attrMods[0];
attribute = attrMod->modAttr;
for (int i = 1; attrMod != nullptr; i++) {
/* Get the value */
if (attribute_name.compare(attribute.attrName) != 0) {_
// Not found
attrMod = opdata->param.modify.attrMods[i];
attribute = attrMod->modAttr; <= CRASH HERE
continue;
}
Proposal solution:
~~~
--- a/src/smf/smfd/SmfImmApplierHdl.cc
+++ b/src/smf/smfd/SmfImmApplierHdl.cc
@@ -446,14 +446,13 @@ static void CcbApplyCallback(SaImmOiHandleT immOiHandle,
SaImmOiCcbIdT ccbId) {
*/
TRACE("%s: Read value in attributes", __FUNCTION__);
attrMod = opdata->param.modify.attrMods[0];
- attribute = attrMod->modAttr;
for (int i = 1; attrMod != nullptr; i++) {
/* Get the value */
+ attribute = attrMod->modAttr;
if (attribute_name_.compare(attribute.attrName) != 0) {
// Not found
attrMod = opdata->param.modify.attrMods[i];
- attribute = attrMod->modAttr;
continue;
}
~~~
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/opensaf/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/opensaf/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list._______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets