diff options
author | danielk1977 <danielk1977@noemail.net> | 2008-10-29 07:01:56 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2008-10-29 07:01:56 +0000 |
commit | 281d8bd3ac1bc3b648736b1877ac425f226ea0c2 (patch) | |
tree | ddca711b2734ddf79cfddb671b3cc484697053e6 /src | |
parent | d1370b6d92b40f546a78ff934178a320d57b55f6 (diff) | |
download | sqlite-281d8bd3ac1bc3b648736b1877ac425f226ea0c2.tar.gz sqlite-281d8bd3ac1bc3b648736b1877ac425f226ea0c2.zip |
If a hot-journal file is detected but the application does not have the required read/write permissions, return SQLITE_CANTOPEN. Prior to this change, SQLITE_BUSY was returned. Ticket #3457. (CVS 5849)
FossilOrigin-Name: dc5308c7629abe6a3bad21489c8e97087c264e5a
Diffstat (limited to 'src')
-rw-r--r-- | src/pager.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/pager.c b/src/pager.c index dbc3d7e94..40e74d91a 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.499 2008/10/22 16:26:48 shane Exp $ +** @(#) $Id: pager.c,v 1.500 2008/10/29 07:01:57 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -2640,8 +2640,8 @@ static int pagerSharedLock(Pager *pPager){ assert( !pPager->tempFile ); rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, f, &fout); assert( rc!=SQLITE_OK || pPager->jfd->pMethods ); - if( fout&SQLITE_OPEN_READONLY ){ - rc = SQLITE_BUSY; + if( rc==SQLITE_OK && fout&SQLITE_OPEN_READONLY ){ + rc = SQLITE_CANTOPEN; sqlite3OsClose(pPager->jfd); } }else{ @@ -2652,11 +2652,6 @@ static int pagerSharedLock(Pager *pPager){ } } if( rc!=SQLITE_OK ){ - if( rc!=SQLITE_NOMEM && rc!=SQLITE_IOERR_UNLOCK - && rc!=SQLITE_IOERR_NOMEM - ){ - rc = SQLITE_BUSY; - } goto failed; } pPager->journalOpen = 1; |