diff options
author | danielk1977 <danielk1977@noemail.net> | 2008-07-07 18:42:40 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2008-07-07 18:42:40 +0000 |
commit | da8c8f2f8f9b44f18109f985a166e7ee3727f103 (patch) | |
tree | 108f4b445cc41d3d0c3477cdd50e0626d336d82b /src | |
parent | 75c5fa88e9fa43b5560dd0a6cda89a244d26cd26 (diff) | |
download | sqlite-da8c8f2f8f9b44f18109f985a166e7ee3727f103.tar.gz sqlite-da8c8f2f8f9b44f18109f985a166e7ee3727f103.zip |
Fix an error introduced by (5346). The list could become corrupted when the database was truncated. (CVS 5356)
FossilOrigin-Name: fbd320ed27dc8910f5035b41171576b4a37cb8b9
Diffstat (limited to 'src')
-rw-r--r-- | src/pager.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pager.c b/src/pager.c index ab1ae0745..755e279f1 100644 --- a/src/pager.c +++ b/src/pager.c @@ -18,7 +18,7 @@ ** file simultaneously, or one process from reading the database while ** another is writing. ** -** @(#) $Id: pager.c,v 1.461 2008/07/07 11:18:28 danielk1977 Exp $ +** @(#) $Id: pager.c,v 1.462 2008/07/07 18:42:41 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -2651,6 +2651,9 @@ static void pager_truncate_cache(Pager *pPager){ ppPg = &pPg->pNextAll; }else{ *ppPg = pPg->pNextAll; + if( *ppPg ){ + (*ppPg)->pPrevAll = pPg->pPrevAll; + } IOTRACE(("PGFREE %p %d\n", pPager, pPg->pgno)); PAGER_INCR(sqlite3_pager_pgfree_count); unlinkPage(pPg); |