]> 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, 12 Jan 2022 21:59:18 +0000 (21:59 +0000)
servers/slapd/overlays/valsort.c

index 58a29f5b9f333e774417bbb293efd5a0f514cdcd..3d998e2fcb6cb7cc5d1e1dbbdeef20c949ff5350 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;
 }