From: drh <> Date: Tue, 15 Feb 2022 11:46:31 +0000 (+0000) Subject: New assert() statements to help prove correctness of memjournal.c. X-Git-Tag: version-3.38.0~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ca0988355d91cb50277ccb33f1a7c88d60fb091;p=thirdparty%2Fsqlite.git New assert() statements to help prove correctness of memjournal.c. FossilOrigin-Name: d74ec88c2f9b9e056988add8322186750229e14a609d1a6969ba393a5b8c5174 --- diff --git a/manifest b/manifest index bae4aed5e0..e685cc2ec5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Generalize\sthe\sin-memory\sjournal\sso\sthat\sit\sis\sable\sto\saccept\swrites\sthat\nbegin\sat\sany\soffset\sless\sthan\sor\sequal\sto\sthe\scurrent\sfile\ssize. -D 2022-02-14T21:11:17.224 +C New\sassert()\sstatements\sto\shelp\sprove\scorrectness\sof\smemjournal.c. +D 2022-02-15T11:46:31.084 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -524,7 +524,7 @@ F src/mem2.c c8bfc9446fd0798bddd495eb5d9dbafa7d4b7287d8c22d50a83ac9daa26d8a75 F src/mem3.c 30301196cace2a085cbedee1326a49f4b26deff0af68774ca82c1f7c06fda4f6 F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944 F src/memdb.c c2dc88f97c410eb68a24468344b65526685e18354ddfd15906750c1eaf9dc2dd -F src/memjournal.c 8e7e9a2acfbf221a48a48b9fea3020e8a397c748aec1c68fe42cd9c59b6e2e7d +F src/memjournal.c 8bd50ae6d9c6d34b3a96cc3b4f567f9935dc358444d872ab48901a8c11ad82a6 F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8 F src/mutex.c 5e3409715552348732e97b9194abe92fdfcd934cfb681df4ba0ab87ac6c18d25 F src/mutex.h a7b2293c48db5f27007c3bdb21d438873637d12658f5a0bf8ad025bb96803c4a @@ -1944,9 +1944,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 4b5d07ea7e6f5d6f1279c88bc474ee4bc8bd2cebe38a268f211f47e44569e4b1 -Q -22cc55e84f67f6f39b7dba07a4ef7ae958b2d926633faec91a278922053e50c6 -R 2cd64e949014532c1efa0ff8ea4a6e54 +P c039d5476e0836c16d8c1ad99a2620f7fd04eb4b0e5dcb2246b42dde2ae1f95a +R 9bfcbea3e2cc10033819aafa59cb37db U drh -Z 2566cca627eb8b963ea71c4eec4c4180 +Z 45576672f2f8bed09c321631de66d99f # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 30d3b12488..95ed510956 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c039d5476e0836c16d8c1ad99a2620f7fd04eb4b0e5dcb2246b42dde2ae1f95a \ No newline at end of file +d74ec88c2f9b9e056988add8322186750229e14a609d1a6969ba393a5b8c5174 \ No newline at end of file diff --git a/src/memjournal.c b/src/memjournal.c index d9a5a70049..a4c17eedd4 100644 --- a/src/memjournal.c +++ b/src/memjournal.c @@ -224,6 +224,7 @@ static int memjrnlWrite( int iChunkOffset = (int)(p->endpoint.iOffset%p->nChunkSize); int iSpace = MIN(nWrite, p->nChunkSize - iChunkOffset); + assert( pChunk!=0 || iChunkOffset==0 ); if( iChunkOffset==0 ){ /* New chunk is required to extend the file. */ FileChunk *pNew = sqlite3_malloc(fileChunkSize(p->nChunkSize)); @@ -238,10 +239,11 @@ static int memjrnlWrite( assert( !p->pFirst ); p->pFirst = pNew; } - p->endpoint.pChunk = pNew; + pChunk = p->endpoint.pChunk = pNew; } - memcpy((u8*)p->endpoint.pChunk->zChunk + iChunkOffset, zWrite, iSpace); + assert( pChunk!=0 ); + memcpy((u8*)pChunk->zChunk + iChunkOffset, zWrite, iSpace); zWrite += iSpace; nWrite -= iSpace; p->endpoint.iOffset += iSpace;