]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a crash in FTS5 caused by specifying NULL as the rhs of a MATCH operator.
authordan <dan@noemail.net>
Thu, 17 Sep 2015 09:48:01 +0000 (09:48 +0000)
committerdan <dan@noemail.net>
Thu, 17 Sep 2015 09:48:01 +0000 (09:48 +0000)
FossilOrigin-Name: e8ed62f82e8acc40b818bf86fafe3d480687514e

ext/fts5/fts5_main.c
ext/fts5/test/fts5simple.test
manifest
manifest.uuid

index 5590816bc2d15ca5cd0dc39801bc7de4e64885a2..3d4741f95fca56da1a6833942840b9249973f27e 100644 (file)
@@ -1116,6 +1116,7 @@ static int fts5FilterMethod(
     rc = fts5CursorFirst(pTab, pCsr, bDesc);
   }else if( pMatch ){
     const char *zExpr = (const char*)sqlite3_value_text(apVal[0]);
+    if( zExpr==0 ) zExpr = "";
 
     rc = fts5CursorParseRank(pConfig, pCsr, pRank);
     if( rc==SQLITE_OK ){
index c93519e6b9496110ea062a986e04857535754596..6a980c1b192d13fcd00434a772b66b110b040cae 100644 (file)
@@ -169,5 +169,21 @@ do_execsql_test 5.8 {
   SELECT rowid FROM tt WHERE tt MATCH 'a*';
 } {1}
 
+#-------------------------------------------------------------------------
+
+reset_db
+do_execsql_test 6.1 {
+  CREATE VIRTUAL TABLE xyz USING fts5(x, y, z);
+  INSERT INTO xyz VALUES('x', 'y', 'z');
+}
+
+do_catchsql_test 6.2 { 
+  SELECT * FROM xyz WHERE xyz MATCH '' 
+} {1 {fts5: syntax error near ""}}
+do_catchsql_test 6.3 { 
+  SELECT * FROM xyz WHERE xyz MATCH NULL 
+} {1 {fts5: syntax error near ""}}
+
+
 finish_test
 
index d7b995bbb8c1bed9fcf66075a843c27c5a6ff6ab..f1d3fe07d1a5b472f5bc5f47ed6bf272a6b155f6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\s"flush"\sto\sforce\sincremental\soutput\sto\sreleasetest-out.txt\swhile\srunning\nthe\stest/releasetest.tcl.\sscript.
-D 2015-09-16T17:46:11.531
+C Fix\sa\scrash\sin\sFTS5\scaused\sby\sspecifying\sNULL\sas\sthe\srhs\sof\sa\sMATCH\soperator.
+D 2015-09-17T09:48:01.737
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -113,7 +113,7 @@ F ext/fts5/fts5_config.c 57ee5fe71578cb494574fc0e6e51acb9a22a8695
 F ext/fts5/fts5_expr.c 667faaf14a69a5683ac383acdc8d942cf32c3f93
 F ext/fts5/fts5_hash.c 4bf4b99708848357b8a2b5819e509eb6d3df9246
 F ext/fts5/fts5_index.c 4fdbc0a321e3a1d73741a623d7aea4db78d6a86d
-F ext/fts5/fts5_main.c 3fa906f6c0177caf8f82862bc70f37b28bb3305c
+F ext/fts5/fts5_main.c 53116cffeb26898832ff7700cc5ebac5fe085d32
 F ext/fts5/fts5_storage.c 120f7b143688b5b7710dacbd48cff211609b8059
 F ext/fts5/fts5_tcl.c 6da58d6e8f42a93c4486b5ba9b187a7f995dee37
 F ext/fts5/fts5_test_mi.c e96be827aa8f571031e65e481251dc1981d608bf
@@ -173,7 +173,7 @@ F ext/fts5/test/fts5rank.test 11dcebba31d822f7e99685b4ea2c2ae3ec0b16f1
 F ext/fts5/test/fts5rebuild.test 03935f617ace91ed23a6099c7c74d905227ff29b
 F ext/fts5/test/fts5restart.test c17728fdea26e7d0f617d22ad5b4b2862b994c17
 F ext/fts5/test/fts5rowid.test 400384798349d658eaf06aefa1e364957d5d4821
-F ext/fts5/test/fts5simple.test f629e24a35a9f31cfb16c9920e8c2316e3d93e94
+F ext/fts5/test/fts5simple.test 967b7144644ad4b40b2526160a5adfa896864c55
 F ext/fts5/test/fts5synonym.test cf88c0a56d5ea9591e3939ef1f6e294f7f2d0671
 F ext/fts5/test/fts5tokenizer.test ea4df698b35cc427ebf2ba22829d0e28386d8c89
 F ext/fts5/test/fts5unicode.test fbef8d8a3b4b88470536cc57604a82ca52e51841
@@ -1387,7 +1387,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 07721c6c24f651d8e281c29227b113d292f6b0de
-R b1ee4cf5cafac6421f20747901ab182b
-U drh
-Z f1ce9a80151e2cb0c06736d3869b387d
+P 0f3de2d337a3113dbd0765aa5545bb586b780121
+R fedcc551e6201e5eaa9f1e4cebc37090
+U dan
+Z 3e310c615687f1a54e1d7e8496a4b4b6
index fba7447cd9715490d6f5ce7cdc6b9d140597683c..92f1ed204d68eed953924e7b91260368400f202c 100644 (file)
@@ -1 +1 @@
-0f3de2d337a3113dbd0765aa5545bb586b780121
\ No newline at end of file
+e8ed62f82e8acc40b818bf86fafe3d480687514e
\ No newline at end of file