int ret;
for (sclass = schema->classes; sclass; sclass = sclass->next) {
- ret = ldb_msg_add_string(msg, "objectClasses", schema_class_to_description(msg, sclass));
+ char *v = schema_class_to_description(msg, sclass);
+ if (v == NULL) {
+ return ldb_oom(ldb);
+ }
+ ret = ldb_msg_add_steal_string(msg, "objectClasses", v);
if (ret != LDB_SUCCESS) {
return ret;
}
{
const struct dsdb_attribute *attribute;
int ret;
-
+
for (attribute = schema->attributes; attribute; attribute = attribute->next) {
- ret = ldb_msg_add_string(msg, "attributeTypes", schema_attribute_to_description(msg, attribute));
+ char *v = schema_attribute_to_description(msg, attribute);
+ if (v == NULL) {
+ return ldb_oom(ldb);
+ }
+ ret = ldb_msg_add_steal_string(msg, "attributeTypes", v);
if (ret != LDB_SUCCESS) {
return ret;
}
return ldb_oom(ldb);
}
- ret = ldb_msg_add_string(msg, "extendedAttributeInfo", val);
+ ret = ldb_msg_add_steal_string(msg, "extendedAttributeInfo", val);
if (ret != LDB_SUCCESS) {
return ret;
}
return ldb_oom(ldb);
}
- ret = ldb_msg_add_string(msg, "extendedClassInfo", val);
+ ret = ldb_msg_add_steal_string(msg, "extendedClassInfo", val);
if (ret != LDB_SUCCESS) {
return ret;
}
}
for (i=0;possibleInferiors[i];i++) {
- ret = ldb_msg_add_string(msg, "possibleInferiors", possibleInferiors[i]);
+ char *v = talloc_strdup(msg, possibleInferiors[i]);
+ if (v == NULL) {
+ return ldb_oom(ldb);
+ }
+ ret = ldb_msg_add_steal_string(msg, "possibleInferiors", v);
if (ret != LDB_SUCCESS) {
return ret;
}