#49086 SDN premangaling is broken after pw_verify change
Closed: wontfix Opened by firstyear.

When we changed to pw_verify, ADDN stopped working.

This is because the be_bind is looking at

(gdb) 
239             sdn = operation_get_target_spec(pb->pb_op);
(gdb) 
240             if (sdn) {
(gdb) 
241                 dns = slapi_ldap_explode_dn(slapi_sdn_get_dn(sdn), 0);
(gdb) 
242                 if (dns) {
(gdb) print sdn
$1 = (Slapi_DN *) 0x60080011ad50
(gdb) print *sdn
$2 = {flag = 7 '\a', udn = 0x0, dn = 0x600400475430 "user1", ndn = 0x600400471ed0 "user1", ndn_len = 5}

The target spec is from the operation.c, which is:

Slapi_DN* 
operation_get_target_spec (Slapi_Operation *op)
{
        return op->o_target_spec;
}

But the pblock is setting a different attribute.

        case SLAPI_TARGET_SDN:
                if(pblock->pb_op!=NULL)
                {
                        (*(Slapi_DN **)value) = pblock->pb_op->o_params.target_address.sdn;
                }
                else
                {
                        return( -1 );
                }
                break;

We probably need to clean this up, and make the target SDN consistent in our code, to weed out subtle issues like this.

Can be shown with test ds/dirsrvtests/tests/tickets/ticket48272_test.py


Can be built and tested with make check

{william@ldapkdc 13:13} ~/build/ds I0> ./test_slapd 
[==========] Running 7 test(s).
[ RUN      ] test_libslapd_hello
[       OK ] test_libslapd_hello
[ RUN      ] test_libslapd_pblock_analytics
[       OK ] test_libslapd_pblock_analytics
[ RUN      ] test_libslapd_pblock_v3c_target_dn
[       OK ] test_libslapd_pblock_v3c_target_dn
[ RUN      ] test_libslapd_pblock_v3c_target_sdn
[       OK ] test_libslapd_pblock_v3c_target_sdn
[ RUN      ] test_libslapd_pblock_v3c_original_target_dn
[       OK ] test_libslapd_pblock_v3c_original_target_dn
[ RUN      ] test_libslapd_pblock_v3c_target_uniqueid
[       OK ] test_libslapd_pblock_v3c_target_uniqueid
[ RUN      ] test_libslapd_operation_v3c_target_spec
[       OK ] test_libslapd_operation_v3c_target_spec
[==========] 7 test(s) run.
[  PASSED  ] 7 test(s).

This patch doesn't appear to "fix" anything, it just adds tests. The tests look fine so you get my ack, but it looks like there is a still an issue that is not addressed.

Metadata Update from @firstyear:
- Issue assigned to firstyear
- Issue set to the milestone: 1.3.6 backlog

commit 6df837c47df9218260fc334b94e9c0a78feaa5cf
To ssh://git@pagure.io/389-ds-base.git
73f221a..6df837c master -> master

Adds compat api checker.

Metadata Update from @firstyear:
- Issue close_status updated to: None

Metadata Update from @firstyear:
- Custom field reviewstatus reset

I found trying to merge these values without breaking the API to be WAYYY too hard. Will re-tackle this with pblock v4 later.

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review

Looks good, ack

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to ack (was: review)

commit e9c5e2dd6d1154613db7af68d59ab2d9d75bc58e
To ssh://git@pagure.io/389-ds-base.git
ccfc3c3..1c790df master -> master

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review (was: ack)

Metadata Update from @firstyear:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/2145

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

Metadata