From: drh Date: Mon, 2 Jan 2012 15:45:12 +0000 (+0000) Subject: Make sure large negative arguments to PRAGMA cache_size do not cause X-Git-Tag: version-3.7.10~19^2~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5dc2bcda7e49ff18c7b2204579f166aad088289e;p=thirdparty%2Fsqlite.git Make sure large negative arguments to PRAGMA cache_size do not cause 32-bit signed integer overflow. Also correct a requirements mark. FossilOrigin-Name: 17c30634a71051158f8d37fd51b3c2a125ad8bd2 --- diff --git a/manifest b/manifest index b03f7e9842..47ea98d771 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Have\sSQLITE_FCNTL_SYNC_OMITTED\suse\sthe\snormal\smethod\sof\sreturning\san\serror\scode. -D 2012-01-02T14:50:12.973 +C Make\ssure\slarge\snegative\sarguments\sto\sPRAGMA\scache_size\sdo\snot\scause\n32-bit\ssigned\sinteger\soverflow.\s\sAlso\scorrect\sa\srequirements\smark. +D 2012-01-02T15:45:12.548 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -147,7 +147,7 @@ F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416 F src/loadext.c f20382fbaeec832438a1ba7797bee3d3c8a6d51d -F src/main.c bcf8cd3036122b64586b65c4db0c5f339ede4a8f +F src/main.c e60abee4a7ca3da31b67745ccf02b8d29f138614 F src/malloc.c 15afac5e59b6584efe072e9933aefb4230e74f97 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 7998e7003a3047e323c849a26dda004debc04d03 @@ -171,7 +171,7 @@ F src/os_win.c 569fe7448e781bfb8116aa79081df0eadf576fc6 F src/pager.c a21a3191ab75310ea75bb61149e63b835f77f5f0 F src/pager.h 5cd760857707529b403837d813d86b68938d6183 F src/parse.y fabb2e7047417d840e6fdb3ef0988a86849a08ba -F src/pcache.c 1fdd77978c1525d1ca4b9ef48eb80abca710cb4c +F src/pcache.c f8043b433a57aba85384a531e3937a804432a346 F src/pcache.h b1d8775a9bddf44e65edb0d20bfc57a4982f840f F src/pcache1.c 9d735349ac87ef08076c6b1230f04cd83b15c6da F src/pragma.c dd66f21fafe7be40e1a48ad4195764cc191cf583 @@ -986,7 +986,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 -P d9761f15a175724c6c28a52335c979304737b188 -R 82d9c69c5da42ef30dc006ee831a69fd -U dan -Z 8ee537d5237b81fef6f749f1defb7865 +P fd3822f1f2e6ea181f663e99bfe788d8404176ee +R 6a506042b7b9b54c17254c10f96e54fb +U drh +Z c1922e4cc60e8bf7e7f5fefa3fe55bc1 diff --git a/manifest.uuid b/manifest.uuid index e2fb77c0ef..2ce2d010a1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -fd3822f1f2e6ea181f663e99bfe788d8404176ee \ No newline at end of file +17c30634a71051158f8d37fd51b3c2a125ad8bd2 \ No newline at end of file diff --git a/src/main.c b/src/main.c index 7da925c2e5..524b710263 100644 --- a/src/main.c +++ b/src/main.c @@ -49,7 +49,7 @@ const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } */ int sqlite3_libversion_number(void){ return SQLITE_VERSION_NUMBER; } -/* IMPLEMENTATION-OF: R-54823-41343 The sqlite3_threadsafe() function returns +/* IMPLEMENTATION-OF: R-20790-14025 The sqlite3_threadsafe() function returns ** zero if and only if SQLite was compiled with mutexing code omitted due to ** the SQLITE_THREADSAFE compile-time option being set to 0. */ diff --git a/src/pcache.c b/src/pcache.c index 0c3e9ee0a2..482a188bee 100644 --- a/src/pcache.c +++ b/src/pcache.c @@ -205,7 +205,7 @@ static int numberOfCachePages(PCache *p){ if( p->szCache>=0 ){ return p->szCache; }else{ - return (-1024*p->szCache)/(p->szPage+p->szExtra); + return (int)((-1024*(i64)p->szCache)/(p->szPage+p->szExtra)); } }