pull up r20214 from trunk
authorTom Yu <tlyu@mit.edu>
Fri, 1 Feb 2008 01:23:12 +0000 (01:23 +0000)
committerTom Yu <tlyu@mit.edu>
Fri, 1 Feb 2008 01:23:12 +0000 (01:23 +0000)
commit08e23fb03ccfe12f492c8a354f0dd63fda6e3ac4
treee7ed12b2613200fd7ced8f1512c6aab045a14dc5
parenta2f8c8380465e2ff8624f541258711dc53572211
pull up r20214 from trunk

 r20214@cathode-dark-space:  tlyu | 2008-01-31 20:03:11 -0500
 ticket: new
 target_version: 1.6.4
 tags: pullup
 subject: libdb btree page split on zero index corrupts db
 component: krb5-kdc

 Splitting a btree page on index 0 can corrupt the database if the key
 length plus data length is exactly a certain value.  This certain size
 causes the item to get the left page to itself, and causes the right
 page to contain an erroneous additional index "hole" having an
 uninitialized value.  This bug may be one of the remaining causes of
 unexplained database corruption reported over the years.  Shawn Emery
 provided useful data from actual instances of this corruption.

 Add a test case for this bug.  (Raw libdb test rather than kdb; the
 latter would be much harder.)

ticket: 5880
version_fixed: 1.6.4

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@20215 dc483132-0cff-0310-8789-dd5450dbe970
src/plugins/kdb/db2/libdb2/btree/bt_split.c
src/plugins/kdb/db2/libdb2/test/run.test