struct ldb_message *msg,
const char *attr, struct berval **bval)
{
- int count, i;
+ int count, i, ret;
struct ldb_message_element *el;
count = ldap_count_values_len(bval);
return -1;
}
- el = talloc_realloc(msg, msg->elements, struct ldb_message_element,
- msg->num_elements + 1);
- if (!el) {
- errno = ENOMEM;
- return -1;
- }
-
- msg->elements = el;
-
- el = &msg->elements[msg->num_elements];
-
- el->name = talloc_strdup(msg->elements, attr);
- if (!el->name) {
+ ret = ldb_msg_add_empty(msg, attr, 0, &el);
+ if (ret != LDB_SUCCESS) {
errno = ENOMEM;
return -1;
}
- el->flags = 0;
- el->num_values = 0;
el->values = talloc_array(msg->elements, struct ldb_val, count);
if (!el->values) {
errno = ENOMEM;