- ext->oid.bv_val = (char *)(ext + 1);
- AC_MEMCPY( ext->oid.bv_val, ext_oid->bv_val, ext_oid->bv_len );
- ext->oid.bv_len = ext_oid->bv_len;
- ext->oid.bv_val[ext->oid.bv_len] = '\0';
+ if ( flags == 0 || ext == NULL ) {
+ ext = ch_calloc( 1, sizeof(struct extop_list) + ext_oid->bv_len + 1 );
+ if ( ext == NULL ) {
+ return(-1);
+ }
+
+ ext->oid.bv_val = (char *)(ext + 1);
+ AC_MEMCPY( ext->oid.bv_val, ext_oid->bv_val, ext_oid->bv_len );
+ ext->oid.bv_len = ext_oid->bv_len;
+ ext->oid.bv_val[ext->oid.bv_len] = '\0';