From 9e7ba7c69ac0fa7bc01b78fede2e4afabc39dc0a Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 4 Feb 2009 19:16:23 +0000 Subject: [PATCH] If the truncate operation fails in journalmode=TRUNCATE, do not fall back to overwriting the journal header with zeros. Simply fail the operation. (CVS 6257) FossilOrigin-Name: d4af60e52a12262ad0194908e68a386c719fe177 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/pager.c | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 12060fa2ee..a0a7f40ef1 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Simplify\swording\sof\sbackup\sAPI\serror\smessage.\s\sDecapitalize\ssome\sother\nerror\smessages.\s(CVS\s6256) -D 2009-02-04T17:40:58 +C If\sthe\struncate\soperation\sfails\sin\sjournalmode=TRUNCATE,\sdo\snot\sfall\sback\nto\soverwriting\sthe\sjournal\sheader\swith\szeros.\s\sSimply\sfail\sthe\soperation.\s(CVS\s6257) +D 2009-02-04T19:16:23 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in c7a5a30fb6852bd7839b1024e1661da8549878ee F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -143,7 +143,7 @@ F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60 F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5 F src/os_unix.c f0fce3042011d462b8ae633564a5668260bd3636 F src/os_win.c b83b57c24ec5bca07cb0eca6f620e796209e952f -F src/pager.c ce4a0a0f10ebfd8b2f70a5edf5af30d233ab8ce7 +F src/pager.c 8c946cca1c1e64bd2d4b15aa431481c96233c826 F src/pager.h 0c9f3520c00d8a3b8e792ca56c9a11b6b02b4b0f F src/parse.y 4f4d16aee0d11f69fec2adb77dac88878043ed8d F src/pcache.c fcf7738c83c4d3e9d45836b2334c8a368cc41274 @@ -700,7 +700,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 572378d3a29c7d55fa4a15df14800c26d6c563a1 -R 0f34db2e5d0b116ed8002ee3600103a1 +P f92405afb649b698b735b423cd9195d4f8f137c9 +R c020d9bb7d6d6907a7c4a48e44d783aa U drh -Z 549e649197447ad11fb6af43a27190a2 +Z 1ecadd6a03a8fc4b63b8359ff18261df diff --git a/manifest.uuid b/manifest.uuid index 3e384d6a1e..192d6bde37 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f92405afb649b698b735b423cd9195d4f8f137c9 \ No newline at end of file +d4af60e52a12262ad0194908e68a386c719fe177 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index eb794de578..0d85debd6f 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.565 2009/02/04 10:09:04 danielk1977 Exp $ +** @(#) $Id: pager.c,v 1.566 2009/02/04 19:16:23 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -1295,8 +1295,8 @@ static int pager_end_transaction(Pager *pPager, int hasMaster){ if( !isMemoryJournal ){ rc = sqlite3OsDelete(pPager->pVfs, pPager->zJournal, 0); } - }else if( pPager->journalMode==PAGER_JOURNALMODE_TRUNCATE - && (rc = sqlite3OsTruncate(pPager->jfd, 0))==SQLITE_OK ){ + }else if( pPager->journalMode==PAGER_JOURNALMODE_TRUNCATE ){ + rc = sqlite3OsTruncate(pPager->jfd, 0); pPager->journalOff = 0; pPager->journalStarted = 0; }else if( pPager->exclusiveMode -- 2.47.2