]> git.sur5r.net Git - openldap/commitdiff
More for #7589
authorHoward Chu <hyc@openldap.org>
Tue, 5 Nov 2013 04:00:55 +0000 (20:00 -0800)
committerHoward Chu <hyc@openldap.org>
Tue, 5 Nov 2013 04:00:55 +0000 (20:00 -0800)
libraries/liblmdb/mdb.c

index b419fd6cdaec7f75b699aea5497217a2c1eca557..8aee8597866594546d0892dcd87bb3a548ed8819 100644 (file)
@@ -7562,18 +7562,11 @@ mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno
                                                }
                                                psize += psize & 1;
                                        }
-                                       if (psize > pmax) {
+                                       if (psize > pmax || i == k-j) {
                                                split_indx = i + (j<0);
                                                break;
                                        }
                                }
-                               /* special case: when the new node was on the last
-                                * slot we may not have tripped the break inside the loop.
-                                * In all other cases we either hit the break condition,
-                                * or the original split_indx was already safe.
-                                */
-                               if (newindx >= nkeys && i == k)
-                                       split_indx = nkeys-1;
                        }
                        if (split_indx == newindx) {
                                sepkey.mv_size = newkey->mv_size;