]> git.sur5r.net Git - openldap/commitdiff
ITS#8319 mdb_load: explain readline and mdb_cursor_put errors
authorOrivej Desh <orivej@gmx.fr>
Sun, 22 Nov 2015 00:59:55 +0000 (00:59 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 23 Nov 2015 02:01:21 +0000 (02:01 +0000)
libraries/liblmdb/mdb_load.c

index 160bc1b8851cf387f0047aab70755b8640ec3a29..5373a9d5d6d164d22c7306f8591c9476c43d0ad5 100644 (file)
@@ -400,20 +400,22 @@ int main(int argc, char *argv[])
 
                while(1) {
                        rc = readline(&key, &kbuf);
-                       if (rc == EOF)
+                       if (rc)  /* rc == EOF */
                                break;
-                       if (rc)
-                               goto txn_abort;
 
                        rc = readline(&data, &dbuf);
-                       if (rc)
+                       if (rc) {
+                               fprintf(stderr, "%s: line %" Z "d: failed to read key value\n", prog, lineno);
                                goto txn_abort;
-                       
+                       }
+
                        rc = mdb_cursor_put(mc, &key, &data, putflags);
                        if (rc == MDB_KEYEXIST && putflags)
                                continue;
-                       if (rc)
+                       if (rc) {
+                               fprintf(stderr, "mdb_cursor_put failed, error %d %s\n", rc, mdb_strerror(rc));
                                goto txn_abort;
+                       }
                        batch++;
                        if (batch == 100) {
                                rc = mdb_txn_commit(txn);