From: drh <> Date: Mon, 13 Dec 2021 18:53:10 +0000 (+0000) Subject: Add NEVER() on an unreachable branch in the Bloom filter pull-down logic. X-Git-Tag: version-3.38.0~180 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f2006ddec1f119026d87207d799feafe1d29f3a;p=thirdparty%2Fsqlite.git Add NEVER() on an unreachable branch in the Bloom filter pull-down logic. FossilOrigin-Name: 471070462593faba865d8d05ee89161b340145351e2fa0bfbaa766d974e932d6 --- diff --git a/manifest b/manifest index 9fb8ae3cb8..539740affc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\soff-by-one\serror\sin\sthe\sBloom\sfilter\spulldown\slogic,\sfound\sby\sOSSFuzz.\nAlso\sfix\sover-length\ssource\scode\slines\sin\sthe\simmediate\svicinity. -D 2021-12-13T18:43:46.407 +C Add\sNEVER()\son\san\sunreachable\sbranch\sin\sthe\sBloom\sfilter\spull-down\slogic. +D 2021-12-13T18:53:10.371 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -638,7 +638,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c ed0398a7adf02c31e34aada42cc86c58f413a7afe5f741a5d373ad087abde028 F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b -F src/where.c 78a878f3264b4710b805bc11d18651435fbc80051d00e3e42692fc86c1cd31bb +F src/where.c c3299a18bb95a0189629aaad1207e2214251181e4c71763c2c0a2575a5e4a4c2 F src/whereInt.h e83f7ba73db5b1b2685118fad67d178fbe04751a25419f0f6ff73e58b4807325 F src/wherecode.c 6a594ed25bfbeb60d455868b7be62637575e4f1949152de4336e4825e0c54ba6 F src/whereexpr.c 791544603b254cf11f8e84e3b50b0863c57322e9f213b828680f658e232ebc57 @@ -1934,7 +1934,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 b98b24f26518fb362e776bbaef80910bed66b654239e7c76d4b234033ef4174b -R 3a4dce129857177521e360c2e6772ed6 +P 027626521c02be06ef61e8229bde49d20cb3f1cb600c4cb127c5f139b9de8858 +R 057e2625c45c96442011c44c84a35821 U drh -Z e1c941de49bea239b2265178ce7baef0 +Z 1a75a7377d82483ef4328f4adf9ae9ae diff --git a/manifest.uuid b/manifest.uuid index 2e6de68e21..801ce1024e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -027626521c02be06ef61e8229bde49d20cb3f1cb600c4cb127c5f139b9de8858 \ No newline at end of file +471070462593faba865d8d05ee89161b340145351e2fa0bfbaa766d974e932d6 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 852f1c17ff..982685738a 100644 --- a/src/where.c +++ b/src/where.c @@ -1072,7 +1072,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( while( ++iLevel < pWInfo->nLevel ){ pLevel = &pWInfo->a[iLevel]; pLoop = pLevel->pWLoop; - if( pLoop==0 ) continue; + if( NEVER(pLoop==0) ) continue; if( pLoop->prereq & notReady ) continue; if( (pLoop->wsFlags & (WHERE_BLOOMFILTER|WHERE_COLUMN_IN)) ==WHERE_BLOOMFILTER