With SaAnyT value, imm import passed wrong memory pointer to free().
---
src/imm/tools/imm_import.cc | 16 ++--
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/src/imm/tools/imm_import.cc b/src/imm/tools/imm_import.cc
index ba5023b17..32a3f5424 100644
--- a/src/imm/tools/imm_import.cc
+++ b/src/imm/tools/imm_import.cc
@@ -345,13 +345,7 @@ static void free_parserState(ParserState *state) {
for (it = state->attrValues.begin(); it != state->attrValues.end(); ++it) {
free(it->attrName);
for (i = 0; it->attrValues[i]; i++) {
-if (it->attrValueType == SA_IMM_ATTR_SASTRINGT ||
-it->attrValueType == SA_IMM_ATTR_SAANYT) {
- free(*(void **)(it->attrValues[i]));
-} else if (it->attrValueType == SA_IMM_ATTR_SANAMET) {
- osaf_extended_name_free((SaNameT *)it->attrValues[i]);
-}
-free(it->attrValues[i]);
+free_attr_value(it->attrValueType, it->attrValues[i]);
}
free(it->attrValues);
}
@@ -833,13 +827,7 @@ done:
for (it = state->attrValues.begin(); it != state->attrValues.end(); ++it) {
free(it->attrName);
for (i = 0; it->attrValues[i]; i++) {
- if (it->attrValueType == SA_IMM_ATTR_SASTRINGT ||
- it->attrValueType == SA_IMM_ATTR_SAANYT) {
-free(*(void **)(it->attrValues[i]));
- } else if (it->attrValueType == SA_IMM_ATTR_SANAMET) {
-osaf_extended_name_free((SaNameT *)it->attrValues[i]);
- }
- free(it->attrValues[i]);
+ free_attr_value(it->attrValueType, it->attrValues[i]);
}
free(it->attrValues);
}
--
2.19.2
___
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel