]> git.sur5r.net Git - openldap/commitdiff
ITS#8819 can't use fakepage mp_ptrs directly
authorHoward Chu <hyc@openldap.org>
Tue, 20 Mar 2018 18:34:56 +0000 (18:34 +0000)
committerHoward Chu <hyc@openldap.org>
Tue, 20 Mar 2018 18:34:56 +0000 (18:34 +0000)
libraries/liblmdb/mdb.c

index 25bd1005eda30005cabe49ff36e29b3b15a06f20..a832d52f35d5ac35dfc094b0a2ceb5df4014c323 100644 (file)
@@ -7669,8 +7669,9 @@ prep_subDB:
                                } else {
                                        memcpy((char *)mp + mp->mp_upper + PAGEBASE, (char *)fp + fp->mp_upper + PAGEBASE,
                                                olddata.mv_size - fp->mp_upper - PAGEBASE);
+                                       memcpy((char *)(&mp->mp_ptrs), (char *)(&fp->mp_ptrs), NUMKEYS(fp) * sizeof(mp->mp_ptrs[0]));
                                        for (i=0; i<NUMKEYS(fp); i++)
-                                               mp->mp_ptrs[i] = fp->mp_ptrs[i] + offset;
+                                               mp->mp_ptrs[i] += offset;
                                }
                        }