ITS#6465, don't unparse empty uri string

This commit is contained in:
Ralf Haferkamp 2010-02-02 14:43:21 +00:00
parent 0e16b2ea55
commit 1a9ef3b4ea

View File

@ -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: