diff options
author | drh <drh@noemail.net> | 2009-11-24 02:37:02 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2009-11-24 02:37:02 +0000 |
commit | 7ab641fb01fa2b2a43b63f1df367e9ff2246ade7 (patch) | |
tree | 4946e8292267ef24d837cbff33979e055d30b739 /src | |
parent | a62bb8d4d71f39807fc74f1a06ec409512d01feb (diff) | |
download | sqlite-7ab641fb01fa2b2a43b63f1df367e9ff2246ade7.tar.gz sqlite-7ab641fb01fa2b2a43b63f1df367e9ff2246ade7.zip |
Fix SQLITE_SECURE_DELETE so that it overwrites content on the root pages
of tables and indices that are dropped using the truncate optimization.
FossilOrigin-Name: 02ef972a56aab1e61786000283193165d3968842
Diffstat (limited to 'src')
-rw-r--r-- | src/btree.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/btree.c b/src/btree.c index c02f070e0..c354fc8ce 100644 --- a/src/btree.c +++ b/src/btree.c @@ -1475,7 +1475,9 @@ static void zeroPage(MemPage *pPage, int flags){ assert( sqlite3PagerGetData(pPage->pDbPage) == data ); assert( sqlite3PagerIswriteable(pPage->pDbPage) ); assert( sqlite3_mutex_held(pBt->mutex) ); - /*memset(&data[hdr], 0, pBt->usableSize - hdr);*/ +#ifdef SQLITE_SECURE_DELETE + memset(&data[hdr], 0, pBt->usableSize - hdr); +#endif data[hdr] = (char)flags; first = hdr + 8 + 4*((flags&PTF_LEAF)==0 ?1:0); memset(&data[hdr+1], 0, 4); @@ -6855,9 +6857,9 @@ int sqlite3BtreeCreateTable(Btree *p, int *piTable, int flags){ */ static int clearDatabasePage( BtShared *pBt, /* The BTree that contains the table */ - Pgno pgno, /* Page number to clear */ - int freePageFlag, /* Deallocate page if true */ - int *pnChange + Pgno pgno, /* Page number to clear */ + int freePageFlag, /* Deallocate page if true */ + int *pnChange /* Add number of Cells freed to this counter */ ){ MemPage *pPage; int rc; |