From fd6bf04bba8035836e8f92771d277a4e868c6299 Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 17 Nov 2019 00:08:24 +0000 Subject: [PATCH] Remove a reachable NEVER() in FTS3. FossilOrigin-Name: 8bd75bf636f72f32d66c6c38e1918f27daf2f13290f00a001f41d50838bbda47 --- ext/fts3/fts3_write.c | 2 +- manifest | 14 +++++++------- manifest.uuid | 2 +- test/fuzzdata8.db | Bin 1396736 -> 1501184 bytes 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ext/fts3/fts3_write.c b/ext/fts3/fts3_write.c index 7d6f365b17..3b36389053 100644 --- a/ext/fts3/fts3_write.c +++ b/ext/fts3/fts3_write.c @@ -3850,7 +3850,7 @@ static int fts3IncrmergePush( ** be added to. */ nPrefix = fts3PrefixCompress(pNode->key.a, pNode->key.n, zTerm, nTerm); nSuffix = nTerm - nPrefix; - if( NEVER(nSuffix<=0) ) return FTS_CORRUPT_VTAB; + if(nSuffix<=0 ) return FTS_CORRUPT_VTAB; nSpace = sqlite3Fts3VarintLen(nPrefix); nSpace += sqlite3Fts3VarintLen(nSuffix) + nSuffix; diff --git a/manifest b/manifest index 5ac9aeea34..6c4876e2f3 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C More\simprovements\sto\sshadow\stable\scorruption\sdetection\sin\sFTS3. -D 2019-11-16T23:47:40.269 +C Remove\sa\sreachable\sNEVER()\sin\sFTS3. +D 2019-11-17T00:08:24.504 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -99,7 +99,7 @@ F ext/fts3/fts3_tokenizer.h 64c6ef6c5272c51ebe60fc607a896e84288fcbc3 F ext/fts3/fts3_tokenizer1.c 5c98225a53705e5ee34824087478cf477bdb7004 F ext/fts3/fts3_unicode.c 4b9af6151c29b35ed09574937083cece7c31e911f69615e168a39677569b684d F ext/fts3/fts3_unicode2.c 416eb7e1e81142703520d284b768ca2751d40e31fa912cae24ba74860532bf0f -F ext/fts3/fts3_write.c 84f7b1390b85e6630d46fc1162f6138ce08aabcf9d57289db8fa1e04602cd3e9 +F ext/fts3/fts3_write.c f31351fc0405852d6ed32aa272e7770e55dffa33fc1d4c028aadef50a84213ab F ext/fts3/fts3speed.tcl b54caf6a18d38174f1a6e84219950d85e98bb1e9 F ext/fts3/mkfts3amal.tcl 252ecb7fe6467854f2aa237bf2c390b74e71f100 F ext/fts3/tool/fts3cov.sh c331d006359456cf6f8f953e37f2b9c7d568f3863f00bb5f7eb87fea4ac01b73 @@ -1016,7 +1016,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db e7a86fd83dda151d160445d542e32e5c6019c541b3a74c2a525b6ac640639711 -F test/fuzzdata8.db 1490d840640e5ace4ec8e10e252681497fd7d5ffbb6b783bd3899fa789698226 +F test/fuzzdata8.db b45368bbe9f86d40d30603e8f780ac29807cbcc951a18d7a7fd9d0c0e904706e F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1849,7 +1849,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 04b2873be5aedeb1c4325cf36c4b5d180f929a641caf1e3829c03778adb29c8e -R c4135a72f080b6416943cb56e5f0bed9 +P 51525f9c3235967bc00a090e84c70a6400698c897aa4742e817121c725b8c99d +R 53c3e5a5ab84e0cd96e357e129ba281f U drh -Z 628c9e8e0d5353ed3a948a9f5a3cad9a +Z 4e9166f4f5d94dbdb240d614319c425c diff --git a/manifest.uuid b/manifest.uuid index 40ad128337..45e95d56cc 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -51525f9c3235967bc00a090e84c70a6400698c897aa4742e817121c725b8c99d \ No newline at end of file +8bd75bf636f72f32d66c6c38e1918f27daf2f13290f00a001f41d50838bbda47 \ No newline at end of file diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 7b4a3d38545776438502730d78b2e37afc8217aa..820ff08a281ea2c7f939c2debbcb520094c14c65 100644 GIT binary patch delta 109275 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 Ub-QC7)c1^mCb#FW!}YiRe}JJldjJ3c delta 5175 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