From: dan Date: Sat, 3 Oct 2020 17:06:02 +0000 (+0000) Subject: Fix a segfault caused by running "column LIKE NULL" against an fts5 table using the... X-Git-Tag: version-3.34.0~70 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12a6a1eaf90acee120967cde8d63041550b5c6f9;p=thirdparty%2Fsqlite.git Fix a segfault caused by running "column LIKE NULL" against an fts5 table using the trigram tokenizer. Fix for [e33ee62575fc22]. FossilOrigin-Name: 6e72a08de764077f2bba6f7e3b99ea29001941671a971f2ccf7ceeb9c682fb1a --- diff --git a/ext/fts5/fts5_main.c b/ext/fts5/fts5_main.c index b1163a4d16..3bca7d4432 100644 --- a/ext/fts5/fts5_main.c +++ b/ext/fts5/fts5_main.c @@ -1270,7 +1270,9 @@ static int fts5FilterMethod( iCol = iCol*10 + (idxStr[iIdxStr]-'0'); iIdxStr++; }while( idxStr[iIdxStr]>='0' && idxStr[iIdxStr]<='9' ); - rc = sqlite3Fts5ExprPattern(pConfig, iCol, zText, &pExpr); + if( zText ){ + rc = sqlite3Fts5ExprPattern(pConfig, iCol, zText, &pExpr); + } if( rc==SQLITE_OK ){ rc = sqlite3Fts5ExprAnd(&pCsr->pExpr, pExpr); pExpr = 0; diff --git a/ext/fts5/test/fts5trigram.test b/ext/fts5/test/fts5trigram.test index b5b6d2acf3..fed5745d16 100644 --- a/ext/fts5/test/fts5trigram.test +++ b/ext/fts5/test/fts5trigram.test @@ -117,6 +117,10 @@ foreach {tn like res} { } $res } +do_execsql_test 2.3.null.1 { + SELECT rowid FROM t1 WHERE y LIKE NULL +} + #------------------------------------------------------------------------- reset_db do_catchsql_test 3.1 { diff --git a/manifest b/manifest index a592722f16..106f4db447 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C FTS5\sdoes\snot\shandle\stokens\sthat\scontain\sembedded\snul\scharacters.\sPrevent\sthe\strigram\stokenizer\sfrom\sreturning\ssuch\stokens.\sFix\sfor\s[2ba5930b2]. -D 2020-10-03T14:36:06.096 +C Fix\sa\ssegfault\scaused\sby\srunning\s"column\sLIKE\sNULL"\sagainst\san\sfts5\stable\susing\sthe\strigram\stokenizer.\sFix\sfor\s[e33ee62575fc22]. +D 2020-10-03T17:06:02.256 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -119,7 +119,7 @@ F ext/fts5/fts5_config.c be54f44fca491e96c6923a4b9a736f2da2b13811600eb6e38d1bcc9 F ext/fts5/fts5_expr.c 7eba8fed2a8f154413814f63c21b34d7562b7d80a62614b9301a5ba6a700f4f0 F ext/fts5/fts5_hash.c 15bffa734fbdca013b2289c6f8827a3b935ef14bd4dde5837d31a75434c00627 F ext/fts5/fts5_index.c 255d3ce3fec28be11c533451e5b23bd79e71a13a1b120f3658b34fff6b097816 -F ext/fts5/fts5_main.c 65c5d579cabaecab478f4bd159ad5c040590f6a75e5afd4ad43c8b92ac65f7f2 +F ext/fts5/fts5_main.c 8b99e0ba99fd3414566b3afa26f891b53349db801f4b0bea69eec05cc00487d5 F ext/fts5/fts5_storage.c 58ba71e6cd3d43a5735815e7956ee167babb4d2cbfe206905174792af4d09d75 F ext/fts5/fts5_tcl.c 39bcbae507f594aad778172fa914cad0f585bf92fd3b078c686e249282db0d95 F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee @@ -217,7 +217,7 @@ F ext/fts5/test/fts5synonym2.test b54cce5c34ec08ed616f646635538ae82e34a0e28f947e F ext/fts5/test/fts5tok1.test ce6551e41ff56f30b69963577324624733bed0d1753589f06120d664d9cd45c9 F ext/fts5/test/fts5tok2.test dcacb32d4a2a3f0dd3215d4a3987f78ae4be21a2 F ext/fts5/test/fts5tokenizer.test ac3c9112b263a639fb0508ae73a3ee886bf4866d2153771a8e8a20c721305a43 -F ext/fts5/test/fts5trigram.test 29d13f2293899c8a9db216af55f6bf0df520459ea2952df1b7866302ef0d0dea +F ext/fts5/test/fts5trigram.test d96062318c184ad74185c29aac95fe60a10a3d93d63d17b09c45d27672e3236a F ext/fts5/test/fts5umlaut.test a42fe2fe6387c40c49ab27ccbd070e1ae38e07f38d05926482cc0bccac9ad602 F ext/fts5/test/fts5unicode.test 17056f4efe6b0a5d4f41fdf7a7dc9af2873004562eaa899d40633b93dc95f5a9 F ext/fts5/test/fts5unicode2.test 9b3df486de05fb4bde4aa7ee8de2e6dae1df6eb90e3f2e242c9383b95d314e3e @@ -1882,7 +1882,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 dd009cd7aec3598e930806907601f4f0f9b0021ea99fa6c5e29e88f1246066ed -R 9c7acf6623596414564a0020768bc2dc +P b1d048748c054575425a4bebf0c5d09962f9329d5ce6a978cf54e508b238584c +R db843e476d987749b38011a60ced2e8f U dan -Z 46788d8d61b39b3ddef723b54e3710a9 +Z e0d69439135a8be7c73786eba62b7f8d diff --git a/manifest.uuid b/manifest.uuid index eb2c30100f..c3311581f9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b1d048748c054575425a4bebf0c5d09962f9329d5ce6a978cf54e508b238584c \ No newline at end of file +6e72a08de764077f2bba6f7e3b99ea29001941671a971f2ccf7ceeb9c682fb1a \ No newline at end of file