if ( ssyn->ssyn_oid ) {
sir = (struct sindexrec *)
- ch_calloc( 1, sizeof(struct sindexrec) );
+ SLAP_CALLOC( 1, sizeof(struct sindexrec) );
+ if( sir == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "syn_insert: SLAP_CALLOC Error\n", 0, 0, 0 );
+#else
+ Debug( LDAP_DEBUG_ANY, "SLAP_CALLOC Error\n", 0, 0, 0 );
+#endif
+ return LDAP_OTHER;
+ }
sir->sir_name = ssyn->ssyn_oid;
sir->sir_syn = ssyn;
if ( avl_insert( &syn_index, (caddr_t) sir,
Syntax *ssyn;
int code;
- ssyn = (Syntax *) ch_calloc( 1, sizeof(Syntax) );
+ ssyn = (Syntax *) SLAP_CALLOC( 1, sizeof(Syntax) );
+ if( ssyn == NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG( OPERATION, ERR,
+ "syn_add: SLAP_CALLOC Error\n", 0, 0, 0 );
+#else
+ Debug( LDAP_DEBUG_ANY, "SLAP_CALLOC Error\n", 0, 0, 0 );
+#endif
+ return LDAP_OTHER;
+ }
AC_MEMCPY( &ssyn->ssyn_syn, syn, sizeof(LDAPSyntax) );
ssyn->ssyn_next = NULL;
+ /*
+ * note: ssyn_bvoid uses the same memory of ssyn_syn.syn_oid;
+ * ssyn_oidlen is #defined as ssyn_bvoid.bv_len
+ */
+ ssyn->ssyn_bvoid.bv_val = ssyn->ssyn_syn.syn_oid;
ssyn->ssyn_oidlen = strlen(syn->syn_oid);
ssyn->ssyn_flags = def->sd_flags;
ssyn->ssyn_validate = def->sd_validate;
return( 0 );
}
-#if defined( SLAPD_SCHEMA_DN )
-
int
syn_schema_info( Entry *e )
{
#endif
#endif
- attr_merge( e, ad_ldapSyntaxes, vals );
+ if( attr_merge( e, ad_ldapSyntaxes, vals ) )
+ return -1;
ldap_memfree( vals[0].bv_val );
}
return 0;
}
-#endif