From: drh Date: Sat, 28 Nov 2009 17:23:47 +0000 (+0000) Subject: Change FTS3 to detect when the RHS of the MATCH opertor encounters an OOM X-Git-Tag: version-3.7.2~782 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9287d93c17eaf41f5b0c764541ce8a1198cab1e8;p=thirdparty%2Fsqlite.git Change FTS3 to detect when the RHS of the MATCH opertor encounters an OOM during string format conversion and report back an SQLITE_NOMEM error. FossilOrigin-Name: 31eed4f8f95f0799d634eccbd9e09cb58172d250 --- diff --git a/ext/fts3/fts3.c b/ext/fts3/fts3.c index a749b7fa9d..4b711e474f 100644 --- a/ext/fts3/fts3.c +++ b/ext/fts3/fts3.c @@ -1835,6 +1835,9 @@ static int fts3FilterMethod( int iCol = idxNum-FTS3_FULLTEXT_SEARCH; const char *zQuery = (const char *)sqlite3_value_text(apVal[0]); + if( zQuery==0 && sqlite3_value_type(apVal[0])!=SQLITE_NULL ){ + return SQLITE_NOMEM; + } rc = sqlite3Fts3PendingTermsFlush(p); if( rc!=SQLITE_OK ) return rc; diff --git a/manifest b/manifest index c671ed4326..80cd2eb3d3 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Remove\sall\sbenign\sOOM\sfailure\sopportunities\sfrom\sthe\sFTS3\shash\stable\nimplementation.\s\sAll\sOOM\sfaults\scause\sSQLITE_NOMEM\sto\sbe\sreturned. -D 2009-11-28T17:07:42 +C Change\sFTS3\sto\sdetect\swhen\sthe\sRHS\sof\sthe\sMATCH\sopertor\sencounters\san\sOOM\nduring\sstring\sformat\sconversion\sand\sreport\sback\san\sSQLITE_NOMEM\serror. +D 2009-11-28T17:23:48 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -59,7 +59,7 @@ F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0 F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a F ext/fts3/README.tokenizers 998756696647400de63d5ba60e9655036cb966e9 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d -F ext/fts3/fts3.c 591a84934108c7838f31bd0379fd2ac9f5b6c2ef +F ext/fts3/fts3.c 8e966349c954cea27d8acf468d77c0d113c52449 F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe F ext/fts3/fts3Int.h 74b21db1c4479c220e803ecf45a78de3b5ac9480 F ext/fts3/fts3_expr.c bdf11f3602f62f36f0e42823680bf22033dae0de @@ -778,14 +778,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P a9cba7ea0a06efa7a63a3069b219cc30fb127e98 -R cd76edcc3f7664765b0f468b4b373929 +P 80754d383a0e890ea3f315dab941b9f166481ddd +R c701b62bb7bcebeb3cce64991b77dc95 U drh -Z 7d405c7b8c5c56c13626b9241d44be94 +Z 79bd1c9ce18f056385942b4e2103a96e -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFLEVjhoxKgR168RlERArsFAJ9pg2grGcuObpwcFueNc37gYB76zACfcd7l -Q3Z8+jEElhbCe4PM9MrJP58= -=MGIf +iD8DBQFLEVynoxKgR168RlERAmNeAKCFnXvJIGrlx8Xq9FMVpghKHSc6IwCfWSxQ +fDg8QqRtiYK559S5hJk0sTo= +=pBpa -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index c93485b473..6aaa5c1867 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -80754d383a0e890ea3f315dab941b9f166481ddd \ No newline at end of file +31eed4f8f95f0799d634eccbd9e09cb58172d250 \ No newline at end of file