]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Cherrypick the fix from [629108c8e5376f989] into the nx-devkit branch.
authordrh <drh@noemail.net>
Fri, 20 Jan 2012 15:05:05 +0000 (15:05 +0000)
committerdrh <drh@noemail.net>
Fri, 20 Jan 2012 15:05:05 +0000 (15:05 +0000)
FossilOrigin-Name: d7374568cbce156523f5a6930e473ba2653c758b

manifest
manifest.uuid
src/pager.c

index 1619acc61420c69246f869304d5330cf82de8bd7..c2097a3e06160f03996a8a7c5e90ee9288528db3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Cherry-pick\sthe\sfix\sto\ssurplus\soverflow\sfiles\sin\sthe\smultiplexor,\ncheck-in\s[1238619756c0c]\sin\sthe\strunk.
-D 2012-01-09T14:57:38.826
+C Cherrypick\sthe\sfix\sfrom\s[629108c8e5376f989]\sinto\sthe\snx-devkit\sbranch.
+D 2012-01-20T15:05:05.042
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -168,7 +168,7 @@ F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
 F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
 F src/os_unix.c baad28b27adc563579170b6d765af0b0cc1d98c8
 F src/os_win.c 823f55855ceb062d72231409b828d0486f09125f
-F src/pager.c 6277bebe07ac45bc99fb912ec105f913be804a83
+F src/pager.c afadbdf1563265756c3d09f2f77f541d6a1cfa73
 F src/pager.h 5cd760857707529b403837d813d86b68938d6183
 F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
 F src/pcache.c 1fdd77978c1525d1ca4b9ef48eb80abca710cb4c
@@ -979,7 +979,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 42f31f190a0ac971fa0ee361fe4c175f479c75e3
-R 33443288608b606d75feb07d292cfeb5
+P 2f8c62c3378a702fa623a2880a989d958eece0df
+R 15df81aa2239c7d8195d068c3097f5bb
 U drh
-Z ff62211e5ddd93259287a913f2fd089b
+Z 14b067267cbd9f1c1104b537a1a48842
index 5c60c15d949193f136ea84beb298f39b6084f683..2a6cd805c7b840962cc393e107d8daf01d1e0a15 100644 (file)
@@ -1 +1 @@
-2f8c62c3378a702fa623a2880a989d958eece0df
\ No newline at end of file
+d7374568cbce156523f5a6930e473ba2653c758b
\ No newline at end of file
index cc1648fb8f57e0a838f3e4ca0256c16c499668ae..75fdaec615e464b4d191939ea11faa24c534a129 100644 (file)
@@ -2485,7 +2485,7 @@ static int pager_truncate(Pager *pPager, Pgno nPage){
     if( rc==SQLITE_OK && currentSize!=newSize ){
       if( currentSize>newSize ){
         rc = sqlite3OsTruncate(pPager->fd, newSize);
-      }else{
+      }else if( (currentSize+szPage)<=newSize ){
         char *pTmp = pPager->pTmpSpace;
         memset(pTmp, 0, szPage);
         testcase( (newSize-szPage) <  currentSize );
@@ -3074,7 +3074,7 @@ static int pagerPagecount(Pager *pPager, Pgno *pnPage){
         return rc;
       }
     }
-    nPage = (Pgno)(n / pPager->pageSize);
+    nPage = (Pgno)((n+pPager->pageSize-1) / pPager->pageSize);
     if( nPage==0 && n>0 ){
       nPage = 1;
     }
@@ -3504,7 +3504,7 @@ int sqlite3PagerSetPagesize(Pager *pPager, u32 *pPageSize, int nReserve){
 
     if( rc==SQLITE_OK ){
       pager_reset(pPager);
-      pPager->dbSize = (Pgno)(nByte/pageSize);
+      pPager->dbSize = (Pgno)((nByte+pageSize-1)/pageSize);
       pPager->pageSize = pageSize;
       sqlite3PageFree(pPager->pTmpSpace);
       pPager->pTmpSpace = pNew;