]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10125 mdb_load: fix cursor reinit in Append mode
authorHoward Chu <hyc@openldap.org>
Sun, 5 Nov 2023 17:34:03 +0000 (17:34 +0000)
committerHoward Chu <hyc@openldap.org>
Sun, 5 Nov 2023 17:34:03 +0000 (17:34 +0000)
libraries/liblmdb/mdb_load.c

index 62af83d88350b37d0f5e9dd4fbaa590984956eae..19dd272c57f5417e18a0ee6f72eca16ae6748124 100644 (file)
@@ -481,7 +481,7 @@ int main(int argc, char *argv[])
                        if (rc == MDB_KEYEXIST && putflags)
                                continue;
                        if (rc) {
-                               fprintf(stderr, "mdb_cursor_put failed, error %d %s\n", rc, mdb_strerror(rc));
+                               fprintf(stderr, "%s: line %"Yu": mdb_cursor_put failed, error %d %s\n", prog, lineno, rc, mdb_strerror(rc));
                                goto txn_abort;
                        }
                        batch++;
@@ -502,9 +502,11 @@ int main(int argc, char *argv[])
                                        fprintf(stderr, "mdb_cursor_open failed, error %d %s\n", rc, mdb_strerror(rc));
                                        goto txn_abort;
                                }
-                               if (appflag & MDB_APPENDDUP) {
+                               if (append) {
                                        MDB_val k, d;
                                        mdb_cursor_get(mc, &k, &d, MDB_LAST);
+                                       memcpy(prevk.mv_data, k.mv_data, k.mv_size);
+                                       prevk.mv_size = k.mv_size;
                                }
                                batch = 0;
                        }