]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sql/schema-map.c
Happy New Year
[openldap] / servers / slapd / back-sql / schema-map.c
index 16f304f0d2eb255165163ce6e1b61a1ded9ef2c2..a29fcce0d5b59072b7d4fe3aeb0fdefea3523382 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2014 The OpenLDAP Foundation.
+ * Copyright 1999-2018 The OpenLDAP Foundation.
  * Portions Copyright 1999 Dmitry Kovalev.
  * Portions Copyright 2002 Pierangelo Masarati.
  * Portions Copyright 2004 Mark Adamson.
@@ -421,6 +421,7 @@ backsql_oc_get_attr_mapping( void *v_oc, void *v_bas )
                                Debug( LDAP_DEBUG_TRACE, "backsql_oc_get_attr_mapping(): "
                                        "unable to fetch attribute \"%s\": %s (%d)\n",
                                        buf, text, rc );
+                               ch_free( at_map );
                                return BACKSQL_AVL_STOP;
                        }
                }
@@ -469,6 +470,7 @@ backsql_oc_get_attr_mapping( void *v_oc, void *v_bas )
                                        "in objectClass \"%s\" map\n",
                                        at_map->bam_ad->ad_cname.bv_val,
                                        oc_map->bom_oc->soc_cname.bv_val, 0 );
+                       ch_free( at_map );
                }
 
                if ( !BER_BVISNULL( &bas->bas_bi->sql_upper_func ) &&
@@ -620,6 +622,7 @@ backsql_load_schema_map( backsql_info *bi, SQLHDBC dbh )
                        Debug( LDAP_DEBUG_TRACE, "backsql_load_schema_map(): "
                                "unable to parse id=\"%s\"\n", 
                                oc_row.cols[ 0 ], 0, 0 );
+                       ch_free( oc_map );
                        return LDAP_OTHER;
                }
 
@@ -628,6 +631,7 @@ backsql_load_schema_map( backsql_info *bi, SQLHDBC dbh )
                        Debug( LDAP_DEBUG_TRACE, "backsql_load_schema_map(): "
                                "objectClass \"%s\" is not defined in schema\n", 
                                oc_row.cols[ 1 ], 0, 0 );
+                       ch_free( oc_map );
                        return LDAP_OTHER;      /* undefined objectClass ? */
                }
                
@@ -646,6 +650,7 @@ backsql_load_schema_map( backsql_info *bi, SQLHDBC dbh )
                        Debug( LDAP_DEBUG_TRACE, "backsql_load_schema_map(): "
                                "unable to parse expect_return=\"%s\" for objectClass \"%s\"\n", 
                                oc_row.cols[ delete_proc_idx + 1 ], oc_row.cols[ 1 ], 0 );
+                       ch_free( oc_map );
                        return LDAP_OTHER;
                }
 
@@ -666,6 +671,7 @@ backsql_load_schema_map( backsql_info *bi, SQLHDBC dbh )
                                                text, rc );
                                backsql_PrintErrors( bi->sql_db_env, dbh,
                                                sth, rc );
+                               ch_free( oc_map );
                                return LDAP_OTHER;
                        }
                }
@@ -680,6 +686,7 @@ backsql_load_schema_map( backsql_info *bi, SQLHDBC dbh )
                        Debug( LDAP_DEBUG_TRACE, "backsql_load_schema_map(): "
                                        "duplicate objectClass \"%s\" in objectClass map\n",
                                        oc_map->bom_oc->soc_cname.bv_val, 0, 0 );
+                       ch_free( oc_map );
                        return LDAP_OTHER;
                }
                if ( avl_insert( &bi->sql_oc_by_id, oc_map, backsql_cmp_oc_id, avl_dup_error ) == -1 ) {