1
0
mirror of https://github.com/altlinux/admc.git synced 2024-10-26 08:55:21 +03:00

Bugfix 50353 attempt

This commit is contained in:
Semyon Knyazev 2024-05-14 20:56:22 +04:00
parent 08793ddd8a
commit 94f7b6aa04

View File

@ -553,28 +553,23 @@ bool AdInterface::attribute_replace_values(const QString &dn, const QString &att
int result;
LDAPControl **server_controls_list = NULL;
LDAPControl *server_controls[2] = {NULL, NULL};
if (set_dacl) {
LDAPControl *sd_control = NULL;
auto cleanup = [&]() {
ldap_control_free(sd_control);
};
const int is_critical = 1;
result = create_sd_control(false, is_critical, &sd_control, set_dacl);
if (result != LDAP_SUCCESS) {
qDebug() << "Failed to create sd control: " << ldap_err2string(result);
cleanup();
ldap_control_free(sd_control);
return false;
}
LDAPControl *server_controls[2] = {sd_control, NULL};
server_controls_list = server_controls;
server_controls[0] = sd_control;
}
result = ldap_modify_ext_s(d->ld, cstr(dn), attrs, server_controls_list, NULL);
result = ldap_modify_ext_s(d->ld, cstr(dn), attrs, server_controls, NULL);
if (result == LDAP_SUCCESS) {
d->success_message(QString(tr("Attribute %1 of object %2 was changed from \"%3\" to \"%4\".")).arg(attribute, name, old_values_display, values_display), do_msg);