]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9759 Honour requested insert position in olcRetcodeItem
authorOndřej Kuzník <ondra@mistotebe.net>
Tue, 7 Dec 2021 12:06:15 +0000 (12:06 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 13 Dec 2021 17:15:08 +0000 (17:15 +0000)
servers/slapd/overlays/retcode.c

index ec548367f7b597d6ce0ae41f1a9c2c4a689d7355..fe9ffcf38beb87381e8e2060119392ca35d9444a 100644 (file)
@@ -1238,10 +1238,14 @@ rc_cf_gen( ConfigArgs *c )
                }
                *--next = '\0';
                
-               for ( rdip = &rd->rd_item; *rdip; rdip = &(*rdip)->rdi_next )
-                       /* go to last */ ;
+               /* We're marked X-ORDERED 'VALUES', valx might be valid */
+               for ( i = 0, rdip = &rd->rd_item;
+                       *rdip && (c->valx < 0 || i < c->valx);
+                       rdip = &(*rdip)->rdi_next, i++ )
+                       /* go to position */ ;
 
                
+               rdi.rdi_next = *rdip;
                *rdip = ( retcode_item_t * )ch_malloc( sizeof( retcode_item_t ) );
                *(*rdip) = rdi;