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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 EA2^KC=l}o! -- 2.47.3