Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openldap2 for openSUSE:Factory 
checked in at 2021-03-19 16:39:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openldap2 (Old)
 and      /work/SRC/openSUSE:Factory/.openldap2.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openldap2"

Fri Mar 19 16:39:53 2021 rev:166 rq:879500 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/openldap2/openldap2.changes      2021-01-20 
18:23:13.475299835 +0100
+++ /work/SRC/openSUSE:Factory/.openldap2.new.2401/openldap2.changes    
2021-03-19 16:39:58.861856899 +0100
@@ -1,0 +2,11 @@
+Tue Mar 16 20:15:53 UTC 2021 - Michael Str??der <[email protected]>
+
+- updated to 2.4.58
+
+OpenLDAP 2.4.58 Release (2021/03/16)
+    Fixed slapd validity checks for issuerAndThisUpdateCheck (ITS#9454)
+    Fixed slapd to alloc new conn struct after freeing old one (ITS#9458)
+    Fixed slapd syncrepl to check all contextCSNs (ITS#9282)
+    Fixed slapd-bdb lockdetect config (ITS#9449)
+
+-------------------------------------------------------------------

Old:
----
  openldap-2.4.57.tgz
  openldap-2.4.57.tgz.asc

New:
----
  openldap-2.4.58.tgz
  openldap-2.4.58.tgz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openldap2.spec ++++++
--- /var/tmp/diff_new_pack.AyGUAJ/_old  2021-03-19 16:39:59.649857962 +0100
+++ /var/tmp/diff_new_pack.AyGUAJ/_new  2021-03-19 16:39:59.653857967 +0100
@@ -22,7 +22,7 @@
 %endif
 
 %define run_test_suite 0
-%define version_main 2.4.57
+%define version_main 2.4.58
 %define name_ppolicy_check_module ppolicy-check-password
 %define version_ppolicy_check_module 1.2
 %define ppolicy_docdir 
%{_docdir}/openldap-%{name_ppolicy_check_module}-%{version_ppolicy_check_module}
@@ -229,7 +229,8 @@
 URL:            https://github.com/onyxpoint/ppolicy-check-password
 BuildRequires:  cracklib-devel
 Requires:       openldap2 = %version_main
-Recommends:     cracklib cracklib-dict-full
+Recommends:     cracklib
+Recommends:     cracklib-dict-full
 
 %description ppolicy-check-password
 An implementation of password quality check module, based on the original

++++++ openldap-2.4.57.tgz -> openldap-2.4.58.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/CHANGES new/openldap-2.4.58/CHANGES
--- old/openldap-2.4.57/CHANGES 2021-01-18 21:08:39.000000000 +0100
+++ new/openldap-2.4.58/CHANGES 2021-03-16 18:09:58.000000000 +0100
@@ -1,5 +1,11 @@
 OpenLDAP 2.4 Change Log
 
+OpenLDAP 2.4.58 Release (2021/03/16)
+       Fixed slapd validity checks for issuerAndThisUpdateCheck (ITS#9454)
+       Fixed slapd to alloc new conn struct after freeing old one (ITS#9458)
+       Fixed slapd syncrepl to check all contextCSNs (ITS#9282)
+       Fixed slapd-bdb lockdetect config (ITS#9449)
+
 OpenLDAP 2.4.57 Release (2021/01/18)
        Fixed ldapexop to use correct return code (ITS#9417)
        Fixed slapd to remove asserts in UUIDNormalize (ITS#9391)
@@ -79,7 +85,7 @@
                Fix test064 so it no longer uses bashisms (ITS#9263)
        Contrib
                Fix default prefix value for pw-argon2, pw-pbkdf2 modules 
(ITS#9248)
-               slapo-allowed - Fix usage of unitialized variable (ITS#9308)
+               slapo-allowed - Fix usage of uninitialized variable (ITS#9308)
        Documentation
                ldap_parse_result(3) - Document ldap_parse_intermediate 
(ITS#9271)
 
@@ -156,7 +162,7 @@
        Fixed libldap to correctly close TLS connection (ITS#8755)
        Fixed libldap with non-blocking TLS and referals (ITS#8167)
        Fixed libldap_r handling of deprecated OpenSSL function (ITS#8353)
-       Fixed liblunicode case correspondance (ITS#8508)
+       Fixed liblunicode case correspondence (ITS#8508)
        Fixed slapd with an idletimeout of less than four seconds (ITS#8952)
        Fixed slapd config parser variable for Windows64 (ITS#9012)
        Fixed slapd syncrepl fallback handling with delta-syncrepl (ITS#9015)
@@ -1111,7 +1117,7 @@
        Fixed slapd-ldap chaining with onelevel scope (ITS#6699)
        Fixed slapd-ldap chaining with ppolicy (ITS#6540)
        Fixed slapd-ldap with SASL/EXTERNAL (ITS#6642)
-       Fixed slapd-ldap crasher on matchedDN (ITS#6793)
+       Fixed slapd-ldap crash on matchedDN (ITS#6793)
        Fixed slapd-ldap with unknown objectClasses (ITS#6814)
        Fixed slapd-ldif error strings (ITS#6731)
        Fixed slapd-ndb to honor rootpw setting (ITS#6661)
@@ -1148,7 +1154,7 @@
        Fixed slapo-refint when last group member is deleted (ITS#6663)
        Fixed slapo-refint with subtree rename (ITS#6730)
        Fixed slapo-rwm double free (ITS#6720)
-       Fixed slapo-rwm crasher (ITS#6632,ITS#6727)
+       Fixed slapo-rwm crash (ITS#6632,ITS#6727)
        Fixed slapo-rwm entry handling (ITS#6760)
        Fixed slapo-rwm response hang (ITS#6792)
        Fixed slapo-sssvlv initialization (ITS#6649)
@@ -1671,7 +1677,7 @@
        Fixed libldap MAXHOSTNAMELEN typo (ITS#5815)
        Fixed libldap Ipv6 detection (ITS#5739)
        Fixed libldap setuid usage with .ldaprc (ITS#4750)
-       Fixed slapacl crasher (ITS#5820)
+       Fixed slapacl crash (ITS#5820)
        Fixed slapd acl checks on ADD (ITS#4556,ITS#5723)
        Fixed slapd acl application to newly created backends (ITS#5572)
        Fixed slapd #if/#elif issues in thread includes (ITS#5824)
@@ -1876,7 +1882,7 @@
        Fixed slapd-bdb/hdb MAXPATHLEN (ITS#5531)
        Fixed slapd-bdb indexing in single ADD/MOD (ITS#5521)
        Fixed slapd-ldap entry_get() op-dependent behavior (ITS#5513)
-       Fixed slapd-meta quarantine crasher (ITS#5522)
+       Fixed slapd-meta quarantine crash (ITS#5522)
        Fixed slapo-refint to allow setting modifiers name (ITS#5505)
        Fixed slapo-syncprov contextCSN passing on syncprov consumers (ITS#5488)
        Fixed slapo-syncprov csn update with delta-syncrepl (ITS#5493)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/build/version.var 
new/openldap-2.4.58/build/version.var
--- old/openldap-2.4.57/build/version.var       2021-01-18 21:08:39.000000000 
+0100
+++ new/openldap-2.4.58/build/version.var       2021-03-16 18:09:58.000000000 
+0100
@@ -15,9 +15,9 @@
 ol_package=OpenLDAP
 ol_major=2
 ol_minor=4
-ol_patch=57
-ol_api_inc=20457
+ol_patch=58
+ol_api_inc=20458
 ol_api_current=13
-ol_api_revision=5
+ol_api_revision=6
 ol_api_age=11
-ol_release_date="2021/01/18"
+ol_release_date="2021/03/16"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/doc/guide/admin/guide.html 
new/openldap-2.4.58/doc/guide/admin/guide.html
--- old/openldap-2.4.57/doc/guide/admin/guide.html      2021-01-18 
21:10:52.000000000 +0100
+++ new/openldap-2.4.58/doc/guide/admin/guide.html      2021-03-16 
19:30:41.000000000 +0100
@@ -23,7 +23,7 @@
 <DIV CLASS="title">
 <H1 CLASS="doc-title">OpenLDAP Software 2.4 Administrator's Guide</H1>
 <ADDRESS CLASS="doc-author">The OpenLDAP Project &lt;<A 
HREF="http://www.openldap.org/";>http://www.openldap.org/</A>&gt;</ADDRESS>
-<ADDRESS CLASS="doc-modified">18 January 2021</ADDRESS>
+<ADDRESS CLASS="doc-modified">16 March 2021</ADDRESS>
 <BR CLEAR="All">
 </DIV>
 <DIV CLASS="contents">
@@ -11396,7 +11396,7 @@
 <P>
 <FONT COLOR="#808080" FACE="Arial,Verdana,Helvetica" SIZE="1"><B>
 ________________<BR>
-<SMALL>&copy; Copyright 2011, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
+<SMALL>&copy; Copyright 2011-2021, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
 
 </DIV>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/doc/guide/plain.sdf 
new/openldap-2.4.58/doc/guide/plain.sdf
--- old/openldap-2.4.57/doc/guide/plain.sdf     2021-01-18 21:08:39.000000000 
+0100
+++ new/openldap-2.4.58/doc/guide/plain.sdf     2021-03-16 18:09:58.000000000 
+0100
@@ -13,7 +13,7 @@
 !macro HTML_FOOTER
 {{INLINE:<FONT COLOR="#808080" FACE="Arial,Verdana,Helvetica" SIZE="1">}}
 {{INLINE:<B>________________<BR><SMALL>}}
-[[c]]  Copyright 2011,
+[[c]]  Copyright 2011-2021,
 {{INLINE:<A HREF="/foundation/">OpenLDAP Foundation</A>}},
 {{EMAIL: [email protected]}}
 {{INLINE:</SMALL><BR></B></FONT>}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/doc/guide/preamble.sdf 
new/openldap-2.4.58/doc/guide/preamble.sdf
--- old/openldap-2.4.57/doc/guide/preamble.sdf  2021-01-18 21:08:39.000000000 
+0100
+++ new/openldap-2.4.58/doc/guide/preamble.sdf  2021-03-16 18:09:58.000000000 
+0100
@@ -55,7 +55,7 @@
 <P>
 <FONT COLOR="#808080" FACE="Arial,Verdana,Helvetica" SIZE="1"><B>
 ________________<BR>
-<SMALL>&copy; Copyright 2011, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
+<SMALL>&copy; Copyright 2011-2021, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
 
        !endblock
 !endmacro
@@ -91,7 +91,7 @@
 <P>
 <FONT COLOR="#808080" FACE="Arial,Verdana,Helvetica" SIZE="1"><B>
 ________________<BR>
-<SMALL>&copy; Copyright 2011, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
+<SMALL>&copy; Copyright 2011-2021, <A 
HREF="http://www.OpenLDAP.org/foundation/";>OpenLDAP Foundation</A>, <A 
HREF="mailto:[email protected]";>[email protected]</A></SMALL></B></FONT>
 
        !endblock
 !endmacro
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/libraries/liblmdb/CHANGES 
new/openldap-2.4.58/libraries/liblmdb/CHANGES
--- old/openldap-2.4.57/libraries/liblmdb/CHANGES       2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/libraries/liblmdb/CHANGES       2021-03-16 
18:09:58.000000000 +0100
@@ -1,5 +1,12 @@
 LMDB 0.9 Change Log
 
+LMDB 0.9.29 Release (2021/03/16)
+       ITS#9461 refix ITS#9376
+       ITS#9500 fix regression from ITS#8662
+
+LMDB 0.9.28 Release (2021/02/04)
+       ITS#8662 add -a append option to mdb_load
+
 LMDB 0.9.27 Release (2020/10/26)
        ITS#9376 fix repeated DUPSORT cursor deletes
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/libraries/liblmdb/lmdb.h 
new/openldap-2.4.58/libraries/liblmdb/lmdb.h
--- old/openldap-2.4.57/libraries/liblmdb/lmdb.h        2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/libraries/liblmdb/lmdb.h        2021-03-16 
18:09:58.000000000 +0100
@@ -200,7 +200,7 @@
 /** Library minor version */
 #define MDB_VERSION_MINOR      9
 /** Library patch version */
-#define MDB_VERSION_PATCH      27
+#define MDB_VERSION_PATCH      29
 
 /** Combine args a,b,c into a single integer for easy version comparisons */
 #define MDB_VERINT(a,b,c)      (((a) << 24) | ((b) << 16) | (c))
@@ -210,7 +210,7 @@
        MDB_VERINT(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH)
 
 /** The release date of this library version */
-#define MDB_VERSION_DATE       "October 26, 2020"
+#define MDB_VERSION_DATE       "March 16, 2021"
 
 /** A stringifier for the version info */
 #define MDB_VERSTR(a,b,c,d)    "LMDB " #a "." #b "." #c ": (" d ")"
@@ -576,7 +576,7 @@
         *      <li>#MDB_NOTLS
         *              Don't use Thread-Local Storage. Tie reader locktable 
slots to
         *              #MDB_txn objects instead of to threads. I.e. 
#mdb_txn_reset() keeps
-        *              the slot reseved for the #MDB_txn object. A thread may 
use parallel
+        *              the slot reserved for the #MDB_txn object. A thread may 
use parallel
         *              read-only transactions. A read-only transaction may 
span threads if
         *              the user synchronizes its use. Applications that 
multiplex many
         *              user threads over individual OS threads need this 
option. Such an
@@ -928,7 +928,7 @@
 typedef void MDB_assert_func(MDB_env *env, const char *msg);
 
        /** Set or reset the assert() callback of the environment.
-        * Disabled if liblmdb is buillt with NDEBUG.
+        * Disabled if liblmdb is built with NDEBUG.
         * @note This hack should become obsolete as lmdb's error handling 
matures.
         * @param[in] env An environment handle returned by #mdb_env_create().
         * @param[in] func An #MDB_assert_func function, or 0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/libraries/liblmdb/mdb.c 
new/openldap-2.4.58/libraries/liblmdb/mdb.c
--- old/openldap-2.4.57/libraries/liblmdb/mdb.c 2021-01-18 21:08:39.000000000 
+0100
+++ new/openldap-2.4.58/libraries/liblmdb/mdb.c 2021-03-16 18:09:58.000000000 
+0100
@@ -493,7 +493,7 @@
         *      The string is printed literally, with no format processing.
         */
 #define DPUTS(arg)     DPRINTF(("%s", arg))
-       /** Debuging output value of a cursor DBI: Negative in a sub-cursor. */
+       /** Debugging output value of a cursor DBI: Negative in a sub-cursor. */
 #define DDBI(mc) \
        (((mc)->mc_flags & C_SUB) ? -(int)(mc)->mc_dbi : (int)(mc)->mc_dbi)
 /** @} */
@@ -6597,7 +6597,7 @@
 
        dkey.mv_size = 0;
 
-       if (flags == MDB_CURRENT) {
+       if (flags & MDB_CURRENT) {
                if (!(mc->mc_flags & C_INITIALIZED))
                        return EINVAL;
                rc = MDB_SUCCESS;
@@ -6992,7 +6992,7 @@
                        xdata.mv_size = 0;
                        xdata.mv_data = "";
                        leaf = NODEPTR(mc->mc_pg[mc->mc_top], 
mc->mc_ki[mc->mc_top]);
-                       if (flags & MDB_CURRENT) {
+                       if ((flags & (MDB_CURRENT|MDB_APPENDDUP)) == 
MDB_CURRENT) {
                                xflags = MDB_CURRENT|MDB_NOSPILL;
                        } else {
                                mdb_xcursor_init1(mc, leaf);
@@ -8481,7 +8481,6 @@
                return rc;
        }
 
-       ki = mc->mc_ki[mc->mc_top];
        mp = mc->mc_pg[mc->mc_top];
        nkeys = NUMKEYS(mp);
 
@@ -8493,19 +8492,18 @@
                if (m3->mc_snum < mc->mc_snum)
                        continue;
                if (m3->mc_pg[mc->mc_top] == mp) {
+                       if (m3->mc_ki[mc->mc_top] >= mc->mc_ki[mc->mc_top]) {
                        /* if m3 points past last node in page, find next 
sibling */
-                       if (m3->mc_ki[mc->mc_top] >= nkeys) {
-                               rc = mdb_cursor_sibling(m3, 1);
-                               if (rc == MDB_NOTFOUND) {
-                                       m3->mc_flags |= C_EOF;
-                                       rc = MDB_SUCCESS;
-                                       continue;
+                               if (m3->mc_ki[mc->mc_top] >= nkeys) {
+                                       rc = mdb_cursor_sibling(m3, 1);
+                                       if (rc == MDB_NOTFOUND) {
+                                               m3->mc_flags |= C_EOF;
+                                               rc = MDB_SUCCESS;
+                                               continue;
+                                       }
+                                       if (rc)
+                                               goto fail;
                                }
-                               if (rc)
-                                       goto fail;
-                       }
-                       if (m3->mc_ki[mc->mc_top] >= ki ||
-                               /* moved to right sibling */ 
m3->mc_pg[mc->mc_top] != mp) {
                                if (m3->mc_xcursor && !(m3->mc_flags & C_EOF)) {
                                        MDB_node *node = 
NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]);
                                        /* If this node has dupdata, it may 
need to be reinited
@@ -8527,10 +8525,10 @@
                                        }
                                        m3->mc_xcursor->mx_cursor.mc_flags |= 
C_DEL;
                                }
-                               m3->mc_flags |= C_DEL;
                        }
                }
        }
+       mc->mc_flags |= C_DEL;
 
 fail:
        if (rc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/libraries/liblmdb/mdb_load.1 
new/openldap-2.4.58/libraries/liblmdb/mdb_load.1
--- old/openldap-2.4.57/libraries/liblmdb/mdb_load.1    2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/libraries/liblmdb/mdb_load.1    2021-03-16 
18:09:58.000000000 +0100
@@ -37,6 +37,13 @@
 .BR \-V
 Write the library version number to the standard output, and exit.
 .TP
+.BR \-a
+Append all records in the order they appear in the input. The input is assumed 
to already be
+in correctly sorted order and no sorting or checking for redundant values will 
be performed.
+This option must be used to reload data that was produced by running
+.B mdb_dump
+on a database that uses custom compare functions.
+.TP
 .BR \-f \ file
 Read from the specified file instead of from the standard input.
 .TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/libraries/liblmdb/mdb_load.c 
new/openldap-2.4.58/libraries/liblmdb/mdb_load.c
--- old/openldap-2.4.57/libraries/liblmdb/mdb_load.c    2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/libraries/liblmdb/mdb_load.c    2021-03-16 
18:09:58.000000000 +0100
@@ -37,6 +37,7 @@
 static MDB_envinfo info;
 
 static MDB_val kbuf, dbuf;
+static MDB_val k0buf;
 
 #ifdef _WIN32
 #define Z      "I"
@@ -278,10 +279,15 @@
 
 static void usage(void)
 {
-       fprintf(stderr, "usage: %s [-V] [-f input] [-n] [-s name] [-N] [-T] 
dbpath\n", prog);
+       fprintf(stderr, "usage: %s [-V] [-a] [-f input] [-n] [-s name] [-N] 
[-T] dbpath\n", prog);
        exit(EXIT_FAILURE);
 }
 
+static int greater(const MDB_val *a, const MDB_val *b)
+{
+       return 1;
+}
+
 int main(int argc, char *argv[])
 {
        int i, rc;
@@ -290,8 +296,9 @@
        MDB_cursor *mc;
        MDB_dbi dbi;
        char *envname;
-       int envflags = 0, putflags = 0;
-       int dohdr = 0;
+       int envflags = MDB_NOSYNC, putflags = 0;
+       int dohdr = 0, append = 0;
+       MDB_val prevk;
 
        prog = argv[0];
 
@@ -299,19 +306,23 @@
                usage();
        }
 
-       /* -f: load file instead of stdin
+       /* -a: append records in input order
+        * -f: load file instead of stdin
         * -n: use NOSUBDIR flag on env_open
         * -s: load into named subDB
         * -N: use NOOVERWRITE on puts
         * -T: read plaintext
         * -V: print version and exit
         */
-       while ((i = getopt(argc, argv, "f:ns:NTV")) != EOF) {
+       while ((i = getopt(argc, argv, "af:ns:NTV")) != EOF) {
                switch(i) {
                case 'V':
                        printf("%s\n", MDB_VERSION_STRING);
                        exit(0);
                        break;
+               case 'a':
+                       append = 1;
+                       break;
                case 'f':
                        if (freopen(optarg, "r", stdin) == NULL) {
                                fprintf(stderr, "%s: %s: reopen: %s\n",
@@ -370,11 +381,16 @@
        }
 
        kbuf.mv_size = mdb_env_get_maxkeysize(env) * 2 + 2;
-       kbuf.mv_data = malloc(kbuf.mv_size);
+       kbuf.mv_data = malloc(kbuf.mv_size * 2);
+       k0buf.mv_size = kbuf.mv_size;
+       k0buf.mv_data = (char *)kbuf.mv_data + kbuf.mv_size;
+       prevk.mv_data = k0buf.mv_data;
 
        while(!Eof) {
                MDB_val key, data;
                int batch = 0;
+               flags = 0;
+               int appflag;
 
                if (!dohdr) {
                        dohdr = 1;
@@ -392,6 +408,12 @@
                        fprintf(stderr, "mdb_open failed, error %d %s\n", rc, 
mdb_strerror(rc));
                        goto txn_abort;
                }
+               prevk.mv_size = 0;
+               if (append) {
+                       mdb_set_compare(txn, dbi, greater);
+                       if (flags & MDB_DUPSORT)
+                               mdb_set_dupsort(txn, dbi, greater);
+               }
 
                rc = mdb_cursor_open(txn, dbi, &mc);
                if (rc) {
@@ -410,7 +432,20 @@
                                goto txn_abort;
                        }
 
-                       rc = mdb_cursor_put(mc, &key, &data, putflags);
+                       if (append) {
+                               appflag = MDB_APPEND;
+                               if (flags & MDB_DUPSORT) {
+                                       if (prevk.mv_size == key.mv_size && 
!memcmp(prevk.mv_data, key.mv_data, key.mv_size))
+                                               appflag = 
MDB_CURRENT|MDB_APPENDDUP;
+                                       else {
+                                               memcpy(prevk.mv_data, 
key.mv_data, key.mv_size);
+                                               prevk.mv_size = key.mv_size;
+                                       }
+                               }
+                       } else {
+                               appflag = 0;
+                       }
+                       rc = mdb_cursor_put(mc, &key, &data, putflags|appflag);
                        if (rc == MDB_KEYEXIST && putflags)
                                continue;
                        if (rc) {
@@ -435,6 +470,10 @@
                                        fprintf(stderr, "mdb_cursor_open 
failed, error %d %s\n", rc, mdb_strerror(rc));
                                        goto txn_abort;
                                }
+                               if (appflag & MDB_APPENDDUP) {
+                                       MDB_val k, d;
+                                       mdb_cursor_get(mc, &k, &d, MDB_LAST);
+                               }
                                batch = 0;
                        }
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/servers/slapd/back-bdb/config.c 
new/openldap-2.4.58/servers/slapd/back-bdb/config.c
--- old/openldap-2.4.57/servers/slapd/back-bdb/config.c 2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/servers/slapd/back-bdb/config.c 2021-03-16 
18:09:58.000000000 +0100
@@ -899,7 +899,7 @@
                                c->log, c->argv[1] );
                        return 1;
                }
-               bdb->bi_lock_detect = (u_int32_t)rc;
+               bdb->bi_lock_detect = bdb_lockd[rc].mask;
                break;
 
        case BDB_SSTACK:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/servers/slapd/connection.c 
new/openldap-2.4.58/servers/slapd/connection.c
--- old/openldap-2.4.57/servers/slapd/connection.c      2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/servers/slapd/connection.c      2021-03-16 
18:09:58.000000000 +0100
@@ -553,8 +553,15 @@
                BER_BVZERO( &c->c_peer_name );
 
                ber_sockbuf_free( c->c_sb );
-               c->c_sb = NULL;
+               c->c_sb = ber_sockbuf_alloc( );
+               {
+                       ber_len_t max = sockbuf_max_incoming;
+                       ber_sockbuf_ctrl( c->c_sb, 
LBER_SB_OPT_SET_MAX_INCOMING, &max );
+               }
+
                c->c_sd = AC_SOCKET_INVALID;
+               c->c_conn_state = SLAP_C_INVALID;
+               c->c_struct_state = SLAP_C_UNUSED;
                ldap_pvt_thread_mutex_unlock( &c->c_mutex );
 
                return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/servers/slapd/schema_init.c 
new/openldap-2.4.58/servers/slapd/schema_init.c
--- old/openldap-2.4.57/servers/slapd/schema_init.c     2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/servers/slapd/schema_init.c     2021-03-16 
18:09:58.000000000 +0100
@@ -3900,6 +3900,8 @@
                                        break;
                                }
                        }
+                       if ( tu->bv_len < STRLENOF("YYYYmmddHHmmssZ") ) return 
LDAP_INVALID_SYNTAX;
+
                        x.bv_val += tu->bv_len + 1;
                        x.bv_len -= tu->bv_len + 1;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openldap-2.4.57/servers/slapd/syncrepl.c 
new/openldap-2.4.58/servers/slapd/syncrepl.c
--- old/openldap-2.4.57/servers/slapd/syncrepl.c        2021-01-18 
21:08:39.000000000 +0100
+++ new/openldap-2.4.58/servers/slapd/syncrepl.c        2021-03-16 
18:09:58.000000000 +0100
@@ -540,7 +540,7 @@
                }
                /* SIDs are the same, take fast path */
                if ( !changed ) {
-                       for ( i = 0; i > ei; i++ ) {
+                       for ( i = 0; i < ei; i++ ) {
                                if ( ber_bvcmp( &sc1->ctxcsn[i], 
&sc2->ctxcsn[i] ) < 0 ) {
                                        ber_bvreplace( &sc1->ctxcsn[i], 
&sc2->ctxcsn[i] );
                                        changed = 1;

Reply via email to