]> 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>
Fri, 10 Dec 2021 16:54:54 +0000 (16:54 +0000)
servers/slapd/overlays/retcode.c

index e0f5b8e04727d768a0df1e4a75cddf88794945fa..8b94b47112b107358f7fa3a39bc4556bc5d469f3 100644 (file)
@@ -1237,10 +1237,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;