From 7d683394f1d27561cbf22c56e3c6be2413f1eb5d Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 7 Apr 2019 18:04:57 +0000 Subject: [PATCH] Fix a faulty assert() in the sqlite3VdbeMemExpandBlob() routine. FossilOrigin-Name: df58774e994bd306b1a2e1f259e7e4408f01c5b1dc104673698168bbf8a63ce5 --- manifest | 18 +++++++++--------- manifest.uuid | 2 +- src/vdbeInt.h | 6 ++++++ src/vdbemem.c | 8 ++++++-- test/fuzzdata8.db | Bin 1054720 -> 1057792 bytes 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index bb0ab8f465..36d9f1b4ef 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\stwo\sassert()\sstatements\sin\sfts5\sthat\sare\sonly\strue\sif\sthe\sdatabase\sis\snot\scorrupt. -D 2019-04-06T15:38:46.026 +C Fix\sa\sfaulty\sassert()\sin\sthe\ssqlite3VdbeMemExpandBlob()\sroutine. +D 2019-04-07T18:04:57.144 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -591,11 +591,11 @@ F src/util.c 276d937c78e9d06f84db469d394573a5c533fb8d0e11a5114c575a99f3dabfa5 F src/vacuum.c 72690ccb6877a88f8473a893cf9f6d7592236f3eebfebfa840b19c708acde574 F src/vdbe.c 711ef421b3bb3db3b2476067b2dc3c71ef5844d9b1a723026578f89f6da621e8 F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237 -F src/vdbeInt.h d0c78ec6ba57e438164c46ee8129ee00ccd898c472b27e325c9758eda533e37e +F src/vdbeInt.h 2c12704db9740c8e899786ecfc7a5797a9d067563496eb1b6ed03c592d7b8d90 F src/vdbeapi.c a6e462bd7853e272cf614d6fbda7f3f20c89a2d255805855b32895a5983ddcec F src/vdbeaux.c 7aa412e7e56eb53649d87766f3064994a31991ee2b2716bf8c3129fa15cc7653 F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191 -F src/vdbemem.c 6d67403debf6eb2b0c8d956ea09bb0ad79b4b45af2a7e2b2736894e703ae3286 +F src/vdbemem.c 340bf04f095d55c26299849a1ffc356c24906e12fe618cbbc0d919d290457c06 F src/vdbesort.c 90aad5a92608f2dd771c96749beabdb562c9d881131a860a7a5bccf66dc3be7f F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392 F src/vtab.c 2462b7d6fd72b0b916477f5ef210ee49ab58cec195483ebdac0c8c5e3ec42cab @@ -996,7 +996,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db f46c9a5698c1ca75ca6280c7c879a3f46dc82fe4b1ce246827496b806488952d -F test/fuzzdata8.db 9dcffb6ca959e466e3da7d76f992d877dfc0b302d316554a786d320af97a6dd2 +F test/fuzzdata8.db 5f12b6a8579e89616da9bd6dede1f38748eb04a1265f0b89117274f44d76b227 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1814,7 +1814,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 c0381b0bc90aa3c2415c4b3ac338cfe6d308bb5d4247bc6f2b6e919f549c254c -R 50ec7d6f5310ad3b1b70b505d9b69336 -U dan -Z 46513b26d98c69e39b038280492e0af2 +P edb095a9a679c8c702abd0a487e55ed4b09110b54bcd7d5275020576f2713a39 +R b1b831f46bb9a54c2be05d85e4d76596 +U drh +Z 39681fb72b93d8847d98f82bd386460b diff --git a/manifest.uuid b/manifest.uuid index ebfecae3f2..88ac35be75 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -edb095a9a679c8c702abd0a487e55ed4b09110b54bcd7d5275020576f2713a39 \ No newline at end of file +df58774e994bd306b1a2e1f259e7e4408f01c5b1dc104673698168bbf8a63ce5 \ No newline at end of file diff --git a/src/vdbeInt.h b/src/vdbeInt.h index 4b2114f101..15a371d550 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -282,6 +282,12 @@ struct sqlite3_value { #define MemSetTypeFlag(p, f) \ ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f) +/* +** True if Mem X is a NULL-nochng type. +*/ +#define MemNullNochng(X) \ + ((X)->flags==(MEM_Null|MEM_Zero) && (X)->n==0 && (X)->u.nZero==0) + /* ** Return true if a memory cell is not marked as invalid. This macro ** is for use inside assert() statements only. diff --git a/src/vdbemem.c b/src/vdbemem.c index c991144f2c..ed1f8d5e00 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -192,7 +192,10 @@ SQLITE_NOINLINE int sqlite3VdbeMemGrow(Mem *pMem, int n, int bPreserve){ /* If the bPreserve flag is set to true, then the memory cell must already ** contain a valid string or blob value. */ - assert( bPreserve==0 || pMem->flags&(MEM_Blob|MEM_Str) ); + assert( bPreserve==0 + || pMem->flags&(MEM_Blob|MEM_Str) + || MemNullNochng(pMem) + ); testcase( bPreserve && pMem->z==0 ); assert( pMem->szMalloc==0 @@ -298,7 +301,8 @@ int sqlite3VdbeMemMakeWriteable(Mem *pMem){ int sqlite3VdbeMemExpandBlob(Mem *pMem){ int nByte; assert( pMem->flags & MEM_Zero ); - assert( pMem->flags&MEM_Blob ); + assert( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) ); + testcase( MemNullNochng(pMem) ) assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index af26102cd6376a350791a1cf0c1c936ce23041fc..929cdfefed3a873a16b25589b689241b389f623b 100644 GIT binary patch delta 17534 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 delta 16726 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 -- 2.47.2