From: drh <> Date: Sat, 15 Mar 2025 19:55:19 +0000 (+0000) Subject: Make use of the C99 flexible array feature, when available, so that X-Git-Tag: major-release~191 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e5d59e8ef38732c37f4ef9d10d6673765f8ea12;p=thirdparty%2Fsqlite.git Make use of the C99 flexible array feature, when available, so that the -fsanitize=bounds-strict option can be used, when available. [forum:/forumpost/311dbf9a1cadfae6|Forum thread 311dbf9a1c]. FossilOrigin-Name: d4307a0d43f42e96ec06ad2c1d8d0f5c8ecae759bae8231b1998633089809f49 --- 6e5d59e8ef38732c37f4ef9d10d6673765f8ea12 diff --cc ext/fts3/fts3_expr.c index 1372cd933b,55943c271f..681d4e8625 --- a/ext/fts3/fts3_expr.c +++ b/ext/fts3/fts3_expr.c @@@ -212,19 -202,7 +212,18 @@@ static int getNextToken rc = pModule->xNext(pCursor, &zToken, &nToken, &iStart, &iEnd, &iPosition); if( rc==SQLITE_OK ){ - + /* Check that this tokenization did not gobble up any " characters. Or, + ** if enable_parenthesis is true, that it did not gobble up any + ** open or close parenthesis characters either. If it did, call + ** getNextToken() again, but pass only that part of the input buffer + ** up to the first such character. */ + int iBarred = findBarredChar(z, iEnd); + if( iBarred>=0 ){ + pModule->xClose(pCursor); + return getNextToken(pParse, iCol, z, iBarred, ppExpr, pnConsumed); + } + - nByte = sizeof(Fts3Expr) + sizeof(Fts3Phrase) + nToken; + nByte = sizeof(Fts3Expr) + SZ_FTS3PHRASE(1) + nToken; pRet = (Fts3Expr *)sqlite3Fts3MallocZero(nByte); if( !pRet ){ rc = SQLITE_NOMEM; diff --cc manifest index 07cc260a22,aa813d962f..3abd0f8344 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Speed\sup\sparsing\sof\svery\slong\sfts3\squery\sexpressions. - D 2025-03-15T16:58:39.639 -C Work\saround\scompilers\sthat\sdo\snot\sunderstand\sflexible\sarrays,\sin\sthe\nrecovery\sextension\sand\sin\sthe\sfuzzcheck\stest\smodule. -D 2025-03-15T19:00:46.484 ++C Make\suse\sof\sthe\sC99\sflexible\sarray\sfeature,\swhen\savailable,\sso\sthat\nthe\s-fsanitize=bounds-strict\soption\scan\sbe\sused,\swhen\savailable.\n[forum:/forumpost/311dbf9a1cadfae6|Forum\sthread\s311dbf9a1c]. ++D 2025-03-15T19:55:19.890 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@@ -14,7 -14,7 +14,7 @@@ F art/sqlite370.eps aa97a671332b432a54e F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F art/sqlite370.svg 40b7e2fe8aac3add5d56dd86ab8d427a4eca5bcb3fe4f8946cb3794e1821d531 - F auto.def 16e64dacd2c556b67df0c33fa08d564224bdb3137756679f39c45ed389b5a07b -F auto.def 3eae53b31c798490a4af13ab8f14948f176c742f4778cc58d8b1f6d6d2e01a62 ++F auto.def 619383263dfd0ee31df6a9d3e9828f65943d9fbcd274084046680641e5de53cb F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac F autoconf/Makefile.in 6c98c82f52aa27a5c586080cf7c61c811174c2b6d8b8de33fd657d78d541dd7d F autoconf/Makefile.msc 5bc67d3912444c40c6f96d003e5c90663e51abb83d204a520110b1b2038dcd8b @@@ -49,8 -49,8 +49,8 @@@ F autosetup/cc-shared.tcl 4f024e94a47f4 F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e45f F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba - F autosetup/proj.tcl f8b5402faf3ee3fe9b10b946a085fc826184d26df1c17b5380e90edf89ea5fb6 -F autosetup/proj.tcl 409dd44d07b2bc9ee98778619f6c0d0123e79f16a0dc726463e037d10f45745e -F autosetup/sqlite-config.tcl 831985320d98002fcd5ea064cae8a49f8afcd9685d83178ef1ebb79189b5045c ++F autosetup/proj.tcl bacaf1ed827067942a6d33f2a5c95bd649ceacae2a8ddc584d0f74456fb9167e +F autosetup/sqlite-config.tcl a7f4d093d63bc1da9ec3d44f392f377ce4c86aa7e48532ae51619e55558f5fbe F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3 @@@ -80,9 -80,9 +80,9 @@@ F ext/fts3/README.tokenizers b92bdeb8b4 F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d F ext/fts3/fts3.c fd2a8642fa4701ef5dd6bce7947ecb3c7ae472e1d44022772454a8b74a13155d F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe - F ext/fts3/fts3Int.h 75b9cf37c93d3c56d8e569d64527c927cb54a5279afb3823740ca1e29e481c15 + F ext/fts3/fts3Int.h ad51347fa5a5a49f6c3bd40a961eafd08f1e410f60b64dea06f115697a2ad9fe F ext/fts3/fts3_aux.c 7eab82a9cf0830f6551ba3abfdbe73ed39e322a4d3940ee82fbf723674ecd9f3 - F ext/fts3/fts3_expr.c b8ff0d3775f33eddae559b444df2000d48768d7d9bdb642e3f6434c9f2543ffc -F ext/fts3/fts3_expr.c 8a20522514c6e93c2935e90b7d269a8819111a6a17a5a91513cd4efcc37c1757 ++F ext/fts3/fts3_expr.c 5c13796638d8192c388777166075cdc8bc4b6712024cd5b72c31acdbefce5984 F ext/fts3/fts3_hash.c d9dba473741445789330c7513d4f65737c92df23c3212784312931641814672a F ext/fts3/fts3_hash.h 39cf6874dc239d6b4e30479b1975fe5b22a3caaf F ext/fts3/fts3_icu.c 305ce7fb6036484085b5556a9c8e62acdc7763f0f4cdf5fd538212a9f3720116 @@@ -705,7 -705,7 +705,7 @@@ F ext/wasm/tests/opfs/sahpool/sahpool-p F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61 F ext/wasm/wasmfs.make 68999f5bd8c489239592d59a420f8c627c99169bbd6fa16a404751f757b9f702 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0 - F main.mk 88af9562d8f4d921e37ffa4d18f59d6d3749f357c7b876393d37298ec78f8110 -F main.mk 09d801f71ac6e84dd6f6afda009b76c2a712cb02edac50c4bcfdae1027dfb4da ++F main.mk e15a567c0bcc1aed49d53944c92a30705e77d21be087cbc0f7359cf1bddb31c8 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421 @@@ -2213,8 -2213,8 +2213,9 @@@ F tool/version-info.c 3b36468a90faf1bbd F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 8afb8bbce8654d6f76207fb136e79dc52b6724a71eae82a4c098690a68eb75a1 - R 1bd8f3cfa90570231383a500e0910fe3 - U dan - Z 1c83f58e6b1181c1bb790bbf7879f1cb -P 8a91aeca60548d5cd19add128cf65b9c3815c9103b1ef8ff6bc02711b6d709de -R 1db0ab70ab59a8097f7bb0d50c768431 ++P 2dd5b6895a3b23c2b9cbf0c1c1e802faf8f2b41ef60819eea25d609755266e64 f101c46cf83e532fd33034abccba496bf395ef10c161af003211614d6581d5eb ++R cffcee5ac5b13fdb08ee088881970bf2 ++T +closed f101c46cf83e532fd33034abccba496bf395ef10c161af003211614d6581d5eb + U drh -Z 9641d2a6129bd2783700fa8c8a1376d8 ++Z 5f005a89032955065b39a2e143d5c279 # Remove this line to create a well-formed Fossil manifest. diff --cc manifest.uuid index a2320ead9e,e5551412ed..d6e3fced3a --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 2dd5b6895a3b23c2b9cbf0c1c1e802faf8f2b41ef60819eea25d609755266e64 -f101c46cf83e532fd33034abccba496bf395ef10c161af003211614d6581d5eb ++d4307a0d43f42e96ec06ad2c1d8d0f5c8ecae759bae8231b1998633089809f49