- vals[0].bv_val = "subentry";
- vals[0].bv_len = sizeof("subentry")-1;
- attr_merge_one( e, ad_structuralObjectClass, vals );
-
- vals[0].bv_val = "top";
- vals[0].bv_len = sizeof("top")-1;
- vals[1].bv_val = "subentry";
- vals[1].bv_len = sizeof("subentry")-1;
- vals[2].bv_val = "subschema";
- vals[2].bv_len = sizeof("subschema")-1;
- vals[3].bv_val = "extensibleObject";
- vals[3].bv_len = sizeof("extensibleObject")-1;
- vals[4].bv_val = NULL;
- attr_merge( e, ad_objectClass, vals );
+ BER_BVSTR( &vals[0], "subentry" );
+ if( attr_merge_one( e, ad_structuralObjectClass, vals, NULL ) ) {
+ /* Out of memory, do something about it */
+ entry_free( e );
+ *text = "out of memory";
+ return LDAP_OTHER;
+ }
+
+ BER_BVSTR( &vals[0], "top" );
+ BER_BVSTR( &vals[1], "subentry" );
+ BER_BVSTR( &vals[2], "subschema" );
+ BER_BVSTR( &vals[3], "extensibleObject" );
+ BER_BVZERO( &vals[4] );
+ if ( attr_merge( e, ad_objectClass, vals, NULL ) ) {
+ /* Out of memory, do something about it */
+ entry_free( e );
+ *text = "out of memory";
+ return LDAP_OTHER;
+ }