]> git.sur5r.net Git - openldap/commitdiff
Remember to NULL terminate control arrays - not sure how I managed to
authorLuke Howard <lukeh@openldap.org>
Thu, 28 Jul 2005 09:56:55 +0000 (09:56 +0000)
committerLuke Howard <lukeh@openldap.org>
Thu, 28 Jul 2005 09:56:55 +0000 (09:56 +0000)
make this error in multiple places

servers/slapd/slapi/slapi_overlay.c
servers/slapd/slapi/slapi_pblock.c

index 2a341089e52bba640cef12c48580f6e598f23de4..e066bfb4853b2b29dd30300aea97ecad33d9fb98 100644 (file)
@@ -462,6 +462,7 @@ slapi_over_merge_controls( Operation *op, SlapReply *rs )
                        ctrls[n_slapi_ctrls + i] = rs->sr_ctrls[i];
                }
        }
+       ctrls[n_slapi_ctrls + n_rs_ctrls] = NULL;
 
        rs->sr_ctrls = ctrls;
 
index 4d1022a07d72586ae2f17d854e690955cb33acd4..cc1b653e76c7f1ad9a4534af4daee43f0a2209b0 100644 (file)
@@ -762,7 +762,8 @@ pblock_add_control( Slapi_PBlock *pb, LDAPControl *control )
 
        controls = (LDAPControl **)slapi_ch_realloc( (char *)controls,
                ( i + 2 ) * sizeof(LDAPControl *));
-       controls[i] = slapi_dup_control( control );
+       controls[i++] = slapi_dup_control( control );
+       controls[i] = NULL;
 
        return pblock_set_default( pb, SLAPI_RESCONTROLS, (void *)controls );
 }
@@ -818,7 +819,7 @@ pblock_set( Slapi_PBlock *pb, int param, void *value )
                LDAPControl **ctrls = NULL;
 
                pblock_get_default( pb, param, (void **)&ctrls );
-               if ( ctrls == NULL ) {
+               if ( ctrls != NULL ) {
                        /* free old ones first */
                        ldap_controls_free( ctrls );
                }