]> git.sur5r.net Git - openldap/commitdiff
ITS#8014 plug onetime leak in slapadd -w
authorHoward Chu <hyc@openldap.org>
Sun, 4 Jan 2015 07:00:14 +0000 (07:00 +0000)
committerHoward Chu <hyc@openldap.org>
Sun, 4 Jan 2015 07:01:47 +0000 (07:01 +0000)
servers/slapd/slapcommon.c

index 01a49554ebc3cc06daf23c4c4a0f55138ace5d72..899ae9390087c02adb8844fcdf58a5080e05f10b 100644 (file)
@@ -1003,6 +1003,7 @@ slap_tool_update_ctxcsn(
                                fprintf( stderr, "%s: couldn't create context entry\n", progname );
                                rc = EXIT_FAILURE;
                        }
+                       entry_free( ctxcsn_e );
                } else {
                        fprintf( stderr, "%s: context entry is missing\n", progname );
                        rc = EXIT_FAILURE;
@@ -1010,9 +1011,14 @@ slap_tool_update_ctxcsn(
        } else {
                ctxcsn_e = be->be_entry_get( be, ctxcsn_id );
                if ( ctxcsn_e != NULL ) {
+                       Operation op = { 0 };
                        Entry *e = entry_dup( ctxcsn_e );
-                       int change;
                        Attribute *attr = attr_find( e->e_attrs, slap_schema.si_ad_contextCSN );
+
+                       int change;
+                       op.o_bd = be;
+                       be_entry_release_r( &op, ctxcsn_e );
+
                        if ( attr ) {
                                int             i;