From: drh Date: Wed, 14 Aug 2019 15:17:21 +0000 (+0000) Subject: Always check for reads past the end of the file on the in-memory journal X-Git-Tag: version-3.30.0~139 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=908e7c43a7386594926bdfce4029884cd20ea012;p=thirdparty%2Fsqlite.git Always check for reads past the end of the file on the in-memory journal driver. This used to be an assert(). FossilOrigin-Name: 4d41ca7d6efbdac70890a8d4159488fc7f59bf78a550b00597b4df990c4fcaef --- diff --git a/manifest b/manifest index 4183e3a60b..d3d9df741e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\ssome\sstatic\sto\sthe\s'regexp'\sextension. -D 2019-08-13T20:34:35.045 +C Always\scheck\sfor\sreads\spast\sthe\send\sof\sthe\sfile\son\sthe\sin-memory\sjournal\ndriver.\s\sThis\sused\sto\sbe\san\sassert(). +D 2019-08-14T15:17:21.194 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -495,7 +495,7 @@ F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944 F src/memdb.c 02a5fcec19b9d40dd449ca802dc1b2e8f93f255fbf2a886277a3c3800d8d35db -F src/memjournal.c 6f3d36a0a8f72f48f6c3c722f04301ac64f2515435fa42924293e46fc7994661 +F src/memjournal.c 7561c01c90958f3ba9bc6cb2d857123d932bdfa5539ea34427a0957b2e35154d F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8 F src/mutex.c bae36f8af32c22ad80bbf0ccebec63c252b6a2b86e4d3e42672ff287ebf4a604 F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85 @@ -1836,7 +1836,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 408144a1832569ced8e04840f0dd36a3867405f36b13631b0f13c0f7b8a0fb01 -R e1eff49797b82e19658f2ee082875e36 -U mistachkin -Z ca11739ed6199651720067a09b5d23b0 +P a21d1dde73f811244b5b43f9fed5877263a9c5061470221f417e501f5530edfa +R ed8fa0e6bed90bb78f3894955acd52ae +U drh +Z 721554492d795644318a412d01d91bde diff --git a/manifest.uuid b/manifest.uuid index 4123f2650e..9d7ba8cea8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a21d1dde73f811244b5b43f9fed5877263a9c5061470221f417e501f5530edfa \ No newline at end of file +4d41ca7d6efbdac70890a8d4159488fc7f59bf78a550b00597b4df990c4fcaef \ No newline at end of file diff --git a/src/memjournal.c b/src/memjournal.c index 3b0e7a6728..0a14e847a2 100644 --- a/src/memjournal.c +++ b/src/memjournal.c @@ -96,14 +96,9 @@ static int memjrnlRead( int iChunkOffset; FileChunk *pChunk; -#if defined(SQLITE_ENABLE_ATOMIC_WRITE) \ - || defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE) if( (iAmt+iOfst)>p->endpoint.iOffset ){ return SQLITE_IOERR_SHORT_READ; } -#endif - - assert( (iAmt+iOfst)<=p->endpoint.iOffset ); assert( p->readpoint.iOffset==0 || p->readpoint.pChunk!=0 ); if( p->readpoint.iOffset!=iOfst || iOfst==0 ){ sqlite3_int64 iOff = 0;