]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9764 slapo-valsort: Maintain values in order of insertion
authorOndřej Kuzník <ondra@mistotebe.net>
Wed, 8 Dec 2021 17:17:18 +0000 (17:17 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 5 Jan 2022 05:07:34 +0000 (05:07 +0000)
servers/slapd/overlays/valsort.c

index e47eec10a9bf4fd66077219dba863bae4487f8d7..92b1c3990b271ba7a88fbff2ac6e95c0f7a41062 100644 (file)
@@ -88,7 +88,7 @@ static Syntax *syn_numericString;
 static int
 valsort_cf_func(ConfigArgs *c) {
        slap_overinst *on = (slap_overinst *)c->bi;
-       valsort_info vitmp, *vi;
+       valsort_info vitmp, *vi, **vip;
        const char *text = NULL;
        int i, is_numeric;
        struct berval bv = BER_BVNULL;
@@ -200,10 +200,14 @@ valsort_cf_func(ConfigArgs *c) {
                        c->log, c->cr_msg, c->argv[1] );
                return(1);
        }
+
+       for ( vip = &on->on_bi.bi_private; *vip; vip = &(*vip)->vi_next )
+               /* Get to the end */ ;
+
        vi = ch_malloc( sizeof(valsort_info) );
        *vi = vitmp;
-       vi->vi_next = on->on_bi.bi_private;
-       on->on_bi.bi_private = vi;
+       vi->vi_next = *vip;
+       *vip = vi;
        return 0;
 }