Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a null-pointer dereference that can occur following a DISKFULL error while running VACUUM. (CVS 5096) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
438d77a762a6f3cc7438e4d688013cc2 |
User & Date: | drh 2008-05-07 12:45:41.000 |
Context
2008-05-07
| ||
13:28 | Add a new I/O error test: ioerr4. (CVS 5097) (check-in: c3ab1a7e2e user: drh tags: trunk) | |
12:45 | Fix a null-pointer dereference that can occur following a DISKFULL error while running VACUUM. (CVS 5096) (check-in: 438d77a762 user: drh tags: trunk) | |
12:29 | Omit mutex variables in the pager when threadsafe is disabled. (CVS 5095) (check-in: d15d0bbab0 user: drh tags: trunk) | |
Changes
Changes to src/pager.c.
︙ | ︙ | |||
14 15 16 17 18 19 20 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** ** @(#) $Id: pager.c,v 1.442 2008/05/07 12:45:41 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" #include <assert.h> #include <string.h> /* |
︙ | ︙ | |||
3854 3855 3856 3857 3858 3859 3860 | ** ** If the number of references to the page drop to zero, then the ** page is added to the LRU list. When all references to all pages ** are released, a rollback occurs and the lock on the database is ** removed. */ int sqlite3PagerUnref(DbPage *pPg){ | | > > > | 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 | ** ** If the number of references to the page drop to zero, then the ** page is added to the LRU list. When all references to all pages ** are released, a rollback occurs and the lock on the database is ** removed. */ int sqlite3PagerUnref(DbPage *pPg){ Pager *pPager; if( pPg==0 ) return SQLITE_OK; pPager = pPg->pPager; /* Decrement the reference count for this page */ assert( pPg->nRef>0 ); pagerEnter(pPg->pPager); pPg->nRef--; |
︙ | ︙ |