]> git.sur5r.net Git - openldap/commitdiff
ITS#6858
authorQuanah Gibson-Mount <quanah@openldap.org>
Thu, 24 Mar 2011 02:11:41 +0000 (02:11 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 24 Mar 2011 02:11:41 +0000 (02:11 +0000)
CHANGES
servers/slapd/bconfig.c

diff --git a/CHANGES b/CHANGES
index b33c397ec08f382ab2dc27dc932dca7b40c22048..22c7e46f22de9e69d36b54bf1eb30c30c3919e1e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,7 @@ OpenLDAP 2.4.25 Engineering
        Fixed tools for incompatible args (ITS#6849)
        Fixed slapd add objectclasses in order (ITS#6837)
        Added slapd ordering for uidNumber and gidNumber (ITS#6852)
+       Fixed slapd segfault when adding values out of order (ITS#6858)
        Fixed slapd sortval handling (ITS#6845)
        Fixed slapd-ldap chain cn=config support (ITS#6837)
        Fixed slapd-ldap chain with slapd.conf (ITS#6857)
index c657ed0fd914513304aa95eada97ce9816450f3e..623940b606b6e3f1c503086201a1d6a21ba85ecb 100644 (file)
@@ -1626,7 +1626,8 @@ config_generic(ConfigArgs *c) {
                                        int i;
                                        for (i=0, oc = cfn->c_oc_head; i<c->valx; i++) {
                                                prev = oc;
-                                               oc_next( &oc );
+                                               if ( !oc_next( &oc ))
+                                                       break;
                                        }
                                } else
                                /* If adding the first, and head exists, find its prev */
@@ -1658,7 +1659,8 @@ config_generic(ConfigArgs *c) {
                                        int i;
                                        for (i=0, at = cfn->c_at_head; i<c->valx; i++) {
                                                prev = at;
-                                               at_next( &at );
+                                               if ( !at_next( &at ))
+                                                       break;
                                        }
                                } else
                                /* If adding the first, and head exists, find its prev */
@@ -1690,7 +1692,8 @@ config_generic(ConfigArgs *c) {
                                        int i;
                                        for ( i = 0, syn = cfn->c_syn_head; i < c->valx; i++ ) {
                                                prev = syn;
-                                               syn_next( &syn );
+                                               if ( !syn_next( &syn ))
+                                                       break;
                                        }
                                } else
                                /* If adding the first, and head exists, find its prev */