}
ber_tag_t
-ber_get_stringbv( BerElement *ber, struct berval *bv, int alloc )
+ber_get_stringbv( BerElement *ber, struct berval *bv, int option )
{
ber_tag_t tag;
return LBER_DEFAULT;
}
- if ( alloc ) {
+ if ( option & LBER_BV_ALLOC ) {
bv->bv_val = (char *) ber_memalloc_x( bv->bv_len + 1,
ber->ber_memctx );
if ( bv->bv_val == NULL ) {
ber->ber_ptr += bv->bv_len;
}
ber->ber_tag = *(unsigned char *)ber->ber_ptr;
- bv->bv_val[bv->bv_len] = '\0';
+ if ( !( option & LBER_BV_NOTERM ))
+ bv->bv_val[bv->bv_len] = '\0';
return tag;
}
ber_tag_t
-ber_get_stringbv_null( BerElement *ber, struct berval *bv, int alloc )
+ber_get_stringbv_null( BerElement *ber, struct berval *bv, int option )
{
ber_tag_t tag;
return tag;
}
- if ( alloc ) {
+ if ( option & LBER_BV_ALLOC ) {
bv->bv_val = (char *) ber_memalloc_x( bv->bv_len + 1,
ber->ber_memctx );
if ( bv->bv_val == NULL ) {
ber->ber_ptr += bv->bv_len;
}
ber->ber_tag = *(unsigned char *)ber->ber_ptr;
- bv->bv_val[bv->bv_len] = '\0';
+ if ( !( option & LBER_BV_NOTERM ))
+ bv->bv_val[bv->bv_len] = '\0';
return tag;
}
assert( buf != NULL );
- tag = ber_get_stringbv( ber, &bv, 1 );
+ tag = ber_get_stringbv( ber, &bv, LBER_BV_ALLOC );
*buf = bv.bv_val;
return tag;
assert( buf != NULL );
- tag = ber_get_stringbv_null( ber, &bv, 1 );
+ tag = ber_get_stringbv_null( ber, &bv, LBER_BV_ALLOC );
*buf = bv.bv_val;
return tag;
return LBER_DEFAULT;
}
- tag = ber_get_stringbv( ber, *bv, 1 );
+ tag = ber_get_stringbv( ber, *bv, LBER_BV_ALLOC );
if ( tag == LBER_DEFAULT ) {
LBER_FREE( *bv );
*bv = NULL;
case 'o': /* octet string in a supplied berval */
bval = va_arg( ap, struct berval * );
- rc = ber_get_stringbv( ber, bval, 1 );
+ rc = ber_get_stringbv( ber, bval, LBER_BV_ALLOC );
break;
case 'O': /* octet string - allocate & include length */
bgbvr cookie = { ChArray };
cookie.ber = ber;
cookie.res.c = va_arg( ap, char *** );
- cookie.alloc = 1;
+ cookie.alloc = LBER_BV_ALLOC;
rc = ber_get_stringbvl( &cookie, NULL );
break;
}
bgbvr cookie = { BvVec };
cookie.ber = ber;
cookie.res.bv = va_arg( ap, struct berval *** );
- cookie.alloc = 1;
+ cookie.alloc = LBER_BV_ALLOC;
rc = ber_get_stringbvl( &cookie, NULL );
break;
}
bgbvr cookie = { BvArray };
cookie.ber = ber;
cookie.res.ba = va_arg( ap, struct berval ** );
- cookie.alloc = 1;
+ cookie.alloc = LBER_BV_ALLOC;
rc = ber_get_stringbvl( &cookie, NULL );
break;
}