aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2008-07-07 18:42:40 +0000
committerdanielk1977 <danielk1977@noemail.net>2008-07-07 18:42:40 +0000
commitda8c8f2f8f9b44f18109f985a166e7ee3727f103 (patch)
tree108f4b445cc41d3d0c3477cdd50e0626d336d82b /src
parent75c5fa88e9fa43b5560dd0a6cda89a244d26cd26 (diff)
downloadsqlite-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.c5
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);