]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sql/init.c
free Env
[openldap] / servers / slapd / back-sql / init.c
index 1fd226586a0b84d5c1fac7f2eae17dea863b2f2b..7db87c5d7520b2194c0da8a0bfa14dd351ca0f65 100644 (file)
@@ -97,17 +97,23 @@ backsql_db_init(
        BackendDB       *bd )
 {
        backsql_info    *bi;
+       int             rc = 0;
  
        Debug( LDAP_DEBUG_TRACE, "==>backsql_db_init()\n", 0, 0, 0 );
-       bi = (backsql_info *)ch_malloc( sizeof( backsql_info ) );
-       memset( bi, '\0', sizeof( backsql_info ) );
+
+       bi = (backsql_info *)ch_calloc( 1, sizeof( backsql_info ) );
        ldap_pvt_thread_mutex_init( &bi->sql_dbconn_mutex );
        ldap_pvt_thread_mutex_init( &bi->sql_schema_mutex );
-       backsql_init_db_env( bi );
+
+       if ( backsql_init_db_env( bi ) != SQL_SUCCESS ) {
+               rc = -1;
+       }
 
        bd->be_private = bi;
+
        Debug( LDAP_DEBUG_TRACE, "<==backsql_db_init()\n", 0, 0, 0 );
-       return 0;
+
+       return rc;
 }
 
 int