mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-11 06:43:09 -05:00
fix optional URI attrs handling in sets (ITS#5384)
This commit is contained in:
parent
5c2b867451
commit
4b72f44b14
1 changed files with 18 additions and 9 deletions
|
|
@ -2031,6 +2031,10 @@ acl_set_cb_gather( Operation *op, SlapReply *rs )
|
|||
|
||||
for ( j = 0; !BER_BVISNULL( &rs->sr_attrs[ j ].an_name ); j++ ) {
|
||||
AttributeDescription *desc = rs->sr_attrs[ j ].an_desc;
|
||||
|
||||
if ( desc == NULL ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( desc == slap_schema.si_ad_entryDN ) {
|
||||
bvalsp = bvals;
|
||||
|
|
@ -2071,7 +2075,6 @@ acl_set_gather( SetCookie *cookie, struct berval *name, AttributeDescription *de
|
|||
int nattrs = 0;
|
||||
slap_callback cb = { NULL, acl_set_cb_gather, NULL, NULL };
|
||||
acl_set_gather_t p = { 0 };
|
||||
const char *text = NULL;
|
||||
|
||||
/* this routine needs to return the bervals instead of
|
||||
* plain strings, since syntax is not known. It should
|
||||
|
|
@ -2131,19 +2134,25 @@ acl_set_gather( SetCookie *cookie, struct berval *name, AttributeDescription *de
|
|||
|
||||
/* Grap the attributes */
|
||||
if ( ludp->lud_attrs ) {
|
||||
int i;
|
||||
|
||||
for ( ; ludp->lud_attrs[ nattrs ]; nattrs++ )
|
||||
;
|
||||
|
||||
anlistp = slap_sl_malloc( sizeof( AttributeName ) * ( nattrs + 2 ),
|
||||
anlistp = slap_sl_calloc( sizeof( AttributeName ), nattrs + 2,
|
||||
cp->asc_op->o_tmpmemctx );
|
||||
|
||||
for ( ; ludp->lud_attrs[ nattrs ]; nattrs++ ) {
|
||||
ber_str2bv( ludp->lud_attrs[ nattrs ], 0, 0, &anlistp[ nattrs ].an_name );
|
||||
anlistp[ nattrs ].an_desc = NULL;
|
||||
rc = slap_bv2ad( &anlistp[ nattrs ].an_name,
|
||||
&anlistp[ nattrs ].an_desc, &text );
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
goto url_done;
|
||||
for ( i = 0, nattrs = 0; ludp->lud_attrs[ i ]; i++ ) {
|
||||
struct berval name;
|
||||
AttributeDescription *desc = NULL;
|
||||
const char *text = NULL;
|
||||
|
||||
ber_str2bv( ludp->lud_attrs[ i ], 0, 0, &name );
|
||||
rc = slap_bv2ad( &name, &desc, &text );
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
anlistp[ nattrs ].an_name = name;
|
||||
anlistp[ nattrs ].an_desc = desc;
|
||||
nattrs++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue