mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-04-18 15:20:35 +08:00
ITS#6465, don't unparse empty uri string
This commit is contained in:
parent
0e16b2ea55
commit
1a9ef3b4ea
@ -1545,23 +1545,31 @@ slap_cf_aux_table_unparse( void *src, struct berval *bv, slap_cf_aux_table *tab0
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
*ptr++ = ' ';
|
||||
ptr = lutil_strcopy( ptr, tab->key.bv_val );
|
||||
if ( tab->quote ) *ptr++ = '"';
|
||||
if ( tab->aux != NULL ) {
|
||||
struct berval value;
|
||||
slap_cf_aux_table_parse_x *func = (slap_cf_aux_table_parse_x *)tab->aux;
|
||||
int rc;
|
||||
{
|
||||
char *saveptr=ptr;
|
||||
*ptr++ = ' ';
|
||||
ptr = lutil_strcopy( ptr, tab->key.bv_val );
|
||||
if ( tab->quote ) *ptr++ = '"';
|
||||
if ( tab->aux != NULL ) {
|
||||
struct berval value;
|
||||
slap_cf_aux_table_parse_x *func = (slap_cf_aux_table_parse_x *)tab->aux;
|
||||
int rc;
|
||||
|
||||
value.bv_val = ptr;
|
||||
value.bv_len = buf + sizeof( buf ) - ptr;
|
||||
value.bv_val = ptr;
|
||||
value.bv_len = buf + sizeof( buf ) - ptr;
|
||||
|
||||
rc = func( &value, (void *)((char *)src + tab->off), tab, "(unparse)", 1 );
|
||||
if ( rc == 0 ) {
|
||||
ptr += value.bv_len;
|
||||
rc = func( &value, (void *)((char *)src + tab->off), tab, "(unparse)", 1 );
|
||||
if ( rc == 0 ) {
|
||||
if (value.bv_len) {
|
||||
ptr += value.bv_len;
|
||||
} else {
|
||||
ptr = saveptr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( tab->quote ) *ptr++ = '"';
|
||||
}
|
||||
if ( tab->quote ) *ptr++ = '"';
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user