]> git.sur5r.net Git - openldap/commitdiff
Converted all use of dn_parent to the in-place version. (Fixed a pdn leak
authorHoward Chu <hyc@openldap.org>
Sat, 8 Dec 2001 10:37:42 +0000 (10:37 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 8 Dec 2001 10:37:42 +0000 (10:37 +0000)
in back-sql along the way.)

16 files changed:
servers/slapd/back-bdb/add.c
servers/slapd/back-bdb/delete.c
servers/slapd/back-bdb/dn2id.c
servers/slapd/back-bdb/modrdn.c
servers/slapd/back-bdb/search.c
servers/slapd/back-bdb/tools.c
servers/slapd/back-ldbm/add.c
servers/slapd/back-ldbm/delete.c
servers/slapd/back-ldbm/dn2id.c
servers/slapd/back-ldbm/modrdn.c
servers/slapd/back-ldbm/search.c
servers/slapd/back-monitor/cache.c
servers/slapd/back-passwd/search.c
servers/slapd/back-sql/modify.c
servers/slapd/dn.c
servers/slapd/proto-slap.h

index b098bb499cd27af461d0cabd6b3030e86b5d0ba5..8373f69349ea4972068caadf7868565827193115 100644 (file)
@@ -93,7 +93,7 @@ retry:        rc = txn_abort( ltid );
         * If the parent does not exist, only allow the "root" user to
         * add the entry.
         */
-       pdn = dn_parent1( be, e->e_ndn );
+       pdn = dn_parent( be, e->e_ndn );
 
        if( pdn != NULL && *pdn != '\0' ) {
                Entry *matched = NULL;
index 47b9ca6708d12e5c8cfa799c1f2735f53496d638..9094411caf364a1b34425a7f69b0d0e02365cb4d 100644 (file)
@@ -116,7 +116,7 @@ retry:      /* transaction retry */
                goto done;
        }
 
-       pdn = dn_parent1( be, ndn );
+       pdn = dn_parent( be, ndn );
 
        if( pdn != NULL && *pdn != '\0' ) {
                /* get parent */
index 22695f460595d8cdbfea1b97cf9f40089bcd5ef0..8606ea388965cf8fa30738140f8111e9faee7987 100644 (file)
@@ -60,7 +60,7 @@ bdb_dn2id_add(
                goto done;
        }
 
-       pdn = dn_parent1( be, ptr );
+       pdn = dn_parent( be, ptr );
 
        if( pdn != NULL ) {
                key.size -= pdn - ptr;
@@ -86,7 +86,7 @@ bdb_dn2id_add(
                        goto done;
                }
                ptr = pdn;
-               pdn = dn_parent1( be, pdn );
+               pdn = dn_parent( be, pdn );
        }
 
        while( pdn != NULL ) {
@@ -106,7 +106,7 @@ bdb_dn2id_add(
                        break;
                }
                ptr = pdn;
-               pdn = dn_parent1( be, pdn );
+               pdn = dn_parent( be, pdn );
        }
 
 done:
@@ -157,7 +157,7 @@ bdb_dn2id_delete(
                goto done;
        }
 
-       pdn = dn_parent1( be, ptr );
+       pdn = dn_parent( be, ptr );
 
        if( pdn != NULL ) {
                key.size -= pdn - ptr;
@@ -184,7 +184,7 @@ bdb_dn2id_delete(
                        goto done;
                }
                ptr = pdn;
-               pdn = dn_parent1( be, pdn );
+               pdn = dn_parent( be, pdn );
        }
 
        while( pdn != NULL ) {
@@ -203,7 +203,7 @@ bdb_dn2id_delete(
                        goto done;
                }
                ptr = pdn;
-               pdn = dn_parent1( be, pdn );
+               pdn = dn_parent( be, pdn );
        }
 
 done:
@@ -291,7 +291,7 @@ bdb_dn2id_matched(
                rc = db->get( db, txn, &key, &data, bdb->bi_db_opflags );
 
                if( rc == DB_NOTFOUND ) {
-                       char *pdn = dn_parent1( be, dn );
+                       char *pdn = dn_parent( be, dn );
 
                        if( pdn == NULL || *pdn == '\0' ) {
                                Debug( LDAP_DEBUG_TRACE,
index 7bf0378bf1b59d02ac8eba1846d41c40049eb013..5e6d149561b2b84f268d7e2f9fdf00d33bc1a518 100644 (file)
@@ -160,7 +160,7 @@ retry:      /* transaction retry */
                goto done;
        }
 
-       p_ndn = dn_parent1( be, e->e_ndn );
+       p_ndn = dn_parent( be, e->e_ndn );
        np_ndn = p_ndn;
        if ( p_ndn != NULL && p_ndn[ 0 ] != '\0' ) {
                /* Make sure parent entry exist and we can write its 
@@ -204,7 +204,7 @@ retry:      /* transaction retry */
                        "bdb_modrdn: wr to children of entry %s OK\n",
                        p_ndn, 0, 0 );
                
-               p_dn = dn_parent1( be, e->e_dn );
+               p_dn = dn_parent( be, e->e_dn );
 
                Debug( LDAP_DEBUG_TRACE,
                        "bdb_modrdn: parent dn=%s\n",
index f578eca689aa576db0add12b2c1453bed1b26cc5..72f815481156442ac5b5dff5f181e844775c7025 100644 (file)
@@ -328,7 +328,7 @@ bdb_search(
 
                        /* need to skip alias which deref into scope */
                        if( scope & LDAP_SCOPE_ONELEVEL ) {
-                               char *pdn = dn_parent1( NULL, e->e_ndn );
+                               char *pdn = dn_parent( NULL, e->e_ndn );
                                if ( pdn != NULL ) {
                                        if( strcmp( pdn, realbase ) ) {
                                                goto loop_continue;
@@ -377,7 +377,7 @@ bdb_search(
 
                        /* check scope */
                        if ( !scopeok && scope == LDAP_SCOPE_ONELEVEL ) {
-                               if ( (dn = dn_parent1( be, e->e_ndn )) != NULL ) {
+                               if ( (dn = dn_parent( be, e->e_ndn )) != NULL ) {
                                        scopeok = (dn == realbase)
                                                ? 1
                                                : (strcmp( dn, realbase ) ? 0 : 1 );
index 8b68ddeb650818cad01caea0dfac290567761a4d..992fb7346b52aac83fdf5387e712e64d72751173 100644 (file)
@@ -145,7 +145,7 @@ ID bdb_tool_entry_put(
        }
 
        /* add dn2id indices */
-       pdn = dn_parent1( be, e->e_ndn );
+       pdn = dn_parent( be, e->e_ndn );
        rc = bdb_dn2id_add( be, tid, pdn, e );
        if( rc != 0 ) {
                Debug( LDAP_DEBUG_ANY,
@@ -237,7 +237,7 @@ int bdb_tool_entry_reindex(
                (long) id, e->e_dn, 0 );
 
        /* add dn2id indices */
-       pdn = dn_parent1( be, e->e_ndn );
+       pdn = dn_parent( be, e->e_ndn );
        rc = bdb_dn2id_add( be, tid, pdn, e );
        if( rc != 0 && rc != DB_KEYEXIST ) {
                Debug( LDAP_DEBUG_ANY,
index ab9b53dede9bde62ad0176c5e1ffbf35d98ef866..1a8424f53d0cf709ab99496ce9e980314289c31c 100644 (file)
@@ -123,15 +123,12 @@ ldbm_back_add(
                        ber_bvecfree( refs );
                        free( matched_dn );
 
-                       free( pdn );
                        return -1;
                }
 
                /* don't need the add lock anymore */
                ldap_pvt_thread_mutex_unlock(&li->li_add_mutex);
 
-               free(pdn);
-
                if ( ! access_allowed( be, conn, op, p,
                        children, NULL, ACL_WRITE ) )
                {
@@ -205,7 +202,6 @@ ldbm_back_add(
        } else {
                if(pdn != NULL) {
                        assert( *pdn == '\0' );
-                       free(pdn);
                }
 
                /* no parent, must be adding entry to root */
index 7a09fd0fbf5dd05ddf70938638548b6d234ef455..4c17e6cccdad48a366b9d79af83f709259852731 100644 (file)
@@ -243,8 +243,6 @@ ldbm_back_delete(
        rc = 0;
 
 return_results:;
-       if ( pdn != NULL ) free(pdn);
-
        if( p != NULL ) {
                /* free parent and writer lock */
                cache_return_entry_w( &li->li_cache, p );
index f743046aa58d3ac22a91cd5e03899c4f4ce7c85a..97430943406ac3a0c646965152562bc2a0160bcd 100644 (file)
@@ -64,7 +64,7 @@ dn2id_add(
        free( key.dptr );
 
        if ( rc != -1 ) {
-               char *pdn = dn_parent( NULL, dn );
+               char *pdn = dn_parent( be, dn );
 
                if( pdn != NULL ) {
                        ldbm_datum_init( key );
@@ -75,7 +75,6 @@ dn2id_add(
                        rc = idl_insert_key( be, db, key, id );
                        ldap_pvt_thread_mutex_unlock( &db->dbc_write_mutex );
                        free( key.dptr );
-                       free( pdn );
                }
        }
 
@@ -297,7 +296,7 @@ dn2id_delete(
 
 
        {
-               char *pdn = dn_parent( NULL, dn );
+               char *pdn = dn_parent( be, dn );
 
                if( pdn != NULL ) {
                        ldbm_datum_init( key );
@@ -310,7 +309,6 @@ dn2id_delete(
                        ldap_pvt_thread_mutex_unlock( &db->dbc_write_mutex );
 
                        free( key.dptr );
-                       free( pdn );
                }
        }
 
@@ -425,7 +423,6 @@ dn2entry_rw(
                if ( (e = dn2entry_r( be, pdn, matched )) != NULL ) {
                        *matched = e;
                }
-               free( pdn );
        }
 
        return NULL;
index 43ab2c557b283f8d9808bcaf00751d023bfae586..26a78a393d9b333bd46e33b117cfa8f773d93583 100644 (file)
@@ -790,9 +790,6 @@ return_results:
        if( new_dn != NULL ) free( new_dn );
        if( new_ndn != NULL ) free( new_ndn );
 
-       if( p_dn != NULL ) free( p_dn );
-       if( p_ndn != NULL ) free( p_ndn );
-
        /* LDAP v2 supporting correct attribute handling. */
        if( new_rdn_types != NULL ) charray_free( new_rdn_types );
        if( new_rdn_vals != NULL ) charray_free( new_rdn_vals );
index 2f83a482888adf95f365e8403a4cb1f5afd1e5ea..f4484ecf605b92a5088e5c06f736d2f30ce2d988 100644 (file)
@@ -346,7 +346,6 @@ searchit:
                                                free( pdn );
                                                goto loop_continue;
                                        }
-                                       free(pdn);
                                }
 
                        } else if ( dn_issuffix( e->e_ndn, realbase ) ) {
@@ -379,12 +378,9 @@ searchit:
                        /* check scope */
                        if ( !scopeok && scope == LDAP_SCOPE_ONELEVEL ) {
                                if ( (dn = dn_parent( be, e->e_ndn )) != NULL ) {
-                                       (void) dn_normalize( dn );
                                        scopeok = (dn == realbase)
                                                ? 1
                                                : (strcmp( dn, realbase ) ? 0 : 1 );
-                                       free( dn );
-
                                } else {
                                        scopeok = (realbase == NULL || *realbase == '\0');
                                }
@@ -433,12 +429,9 @@ searchit:
                        /* check scope */
                        if ( !scopeok && scope == LDAP_SCOPE_ONELEVEL ) {
                                if ( (dn = dn_parent( be, e->e_ndn )) != NULL ) {
-                                       (void) dn_normalize( dn );
                                        scopeok = (dn == realbase)
                                                ? 1
                                                : (strcmp( dn, realbase ) ? 0 : 1 );
-                                       free( dn );
-
                                } else {
                                        scopeok = (realbase == NULL || *realbase == '\0');
                                }
index f5d70f59e12e63a13aa81d9ed4a67755952cad08..b794b402334b2ec775c0338812acc444671ffacc 100644 (file)
@@ -195,7 +195,6 @@ monitor_cache_dn2entry(
        /* try with parent/ancestors */
        p_ndn = dn_parent( NULL, ndn );
        rc = monitor_cache_dn2entry( mi, p_ndn, &e_parent );
-       free( p_ndn );
        if ( rc || e_parent == NULL) {
                return( -1 );
        }
index 1fd69910907563da41dadacd85fc4a7b8b7b633b..7143f90088c3931044b12a22b190f9d8fa1944c6 100644 (file)
@@ -74,7 +74,7 @@ passwd_back_search(
                vals[0] = &val;
                vals[1] = NULL;
 
-               matched = ch_strdup( base );
+               matched = base;
 
                if( scope != LDAP_SCOPE_ONELEVEL ) {
                        char *type;
@@ -191,7 +191,7 @@ passwd_back_search(
                        int i;
                        for( i=0; be->be_nsuffix[i] != NULL; i++ ) {
                                if( dn_issuffix( nbase, be->be_nsuffix[i]->bv_val ) ) {
-                                       matched = ch_strdup( be->be_suffix[i] );
+                                       matched = be->be_suffix[i];
                                        break;
                                }
                        }
@@ -212,7 +212,6 @@ passwd_back_search(
 
                if ( (pw = getpwnam( user )) == NULL ) {
                        matched = parent;
-                       parent = NULL;
                        err = LDAP_NO_SUCH_OBJECT;
                        goto done;
                }
@@ -233,8 +232,6 @@ done:
                err, err == LDAP_NO_SUCH_OBJECT ? matched : NULL, NULL,
                NULL, NULL );
 
-       if( matched != NULL ) free( matched );
-       if( parent != NULL ) free( parent );
        if( rdn != NULL ) free( rdn );
        if( user != NULL ) free( user );
 
index bf4f0bb1ede308f6beb1720228a9b7a53775b092..9514da01552c760cbb3c5140c9195b495b93d0f7 100644 (file)
@@ -336,8 +336,6 @@ int backsql_modrdn(BackendDB *be,Connection *conn,Operation *op,
  send_ldap_result(conn,op,LDAP_SUCCESS,"",NULL,NULL,NULL);
 modrdn_return:
  SQLFreeStmt(sth,SQL_DROP);
- if (p_dn)
-  ch_free(p_dn);
  if (newSuperior && new_pdn)
   ch_free(new_pdn);
  if (new_dn)
@@ -462,7 +460,6 @@ int backsql_add(BackendDB *be,Connection *conn,Operation *op,Entry *e)
   send_ldap_result(conn,op,LDAP_OTHER,"","SQL-backend error",NULL,NULL);
   return 1;
  }
- free(pdn);
  backsql_BindParamStr(sth,1,e->e_dn,BACKSQL_MAX_DN_LEN);
  SQLBindParameter(sth,2,SQL_PARAM_INPUT,SQL_C_LONG,SQL_INTEGER,0,0,&oc->id,0,0);
  SQLBindParameter(sth,3,SQL_PARAM_INPUT,SQL_C_LONG,SQL_INTEGER,0,0,&parent_id.id,0,0);
index c88eb3c49b08dd622fb2d092db17dd34f303a60b..65e775060ddf8fd30487fedcafb742fa121e8d6e 100644 (file)
@@ -313,11 +313,11 @@ dn_match( const char *val, const char *asserted )
 }
 
 /*
- * dn_parent1 - return the dn's parent, in-place
+ * dn_parent - return the dn's parent, in-place
  */
 
 char *
-dn_parent1(
+dn_parent(
        Backend *be,
        const char      *dn )
 {
@@ -369,22 +369,6 @@ dn_parent1(
        return "";
 }
 
-/*
- * dn_parent - return a copy of the dn of dn's parent
- */
-
-char *
-dn_parent(
-       Backend *be,
-       const char      *dn
-)
-{
-       dn = dn_parent1( be, dn );
-       if( dn != NULL )
-               dn = ch_strdup( dn );
-       return (char *)dn;
-}
-
 char * dn_rdn(
        Backend *be,
        const char      *dn_in )
@@ -449,7 +433,7 @@ char **dn_subtree(
        do {
                charray_add( &subtree, dn );
 
-               dn = dn_parent1( be, dn );
+               dn = dn_parent( be, dn );
 
        } while ( dn != NULL );
 
index c1342c65b17d8ebd4c2bf45a47da081a4d211319..8b3539f7454c7175baf84ce8212c69a257311d81 100644 (file)
@@ -319,7 +319,6 @@ LDAP_SLAPD_F (char *) dn_validate LDAP_P(( char *dn ));
 LDAP_SLAPD_F (char *) dn_normalize LDAP_P(( char *dn ));
 LDAP_SLAPD_F (int) dn_match LDAP_P(( const char *val, const char *asserted ));
 LDAP_SLAPD_F (char *) dn_parent LDAP_P(( Backend *be, const char *dn ));
-LDAP_SLAPD_F (char *) dn_parent1 LDAP_P(( Backend *be, const char *dn ));
 LDAP_SLAPD_F (char **) dn_subtree LDAP_P(( Backend *be, const char *dn ));
 LDAP_SLAPD_F (char *) dn_rdn LDAP_P(( Backend *be, const char *dn ));
 LDAP_SLAPD_F (int) dn_issuffix LDAP_P(( const char *dn, const char *suffix ));