From: dan Date: Wed, 9 Oct 2019 15:26:45 +0000 (+0000) Subject: Disallow fts5 page sizes greater than 65536 bytes - as there are 16-bit offsets used... X-Git-Tag: version-3.31.0~420 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a6bd1871d1c0c63df9a0482b07477380eb55200d;p=thirdparty%2Fsqlite.git Disallow fts5 page sizes greater than 65536 bytes - as there are 16-bit offsets used in the page header. FossilOrigin-Name: 75775c5ab44e497cb19be10397229637f1374f05c3244e8f92d6c54fcea94f5f --- diff --git a/ext/fts5/fts5_config.c b/ext/fts5/fts5_config.c index 119eb5d262..20da37913b 100644 --- a/ext/fts5/fts5_config.c +++ b/ext/fts5/fts5_config.c @@ -23,7 +23,7 @@ #define FTS5_DEFAULT_HASHSIZE (1024*1024) /* Maximum allowed page size */ -#define FTS5_MAX_PAGE_SIZE (128*1024) +#define FTS5_MAX_PAGE_SIZE (64*1024) static int fts5_iswhitespace(char x){ return (x==' '); diff --git a/ext/fts5/test/fts5misc.test b/ext/fts5/test/fts5misc.test index 4ce46d38df..f8d5be584e 100644 --- a/ext/fts5/test/fts5misc.test +++ b/ext/fts5/test/fts5misc.test @@ -150,6 +150,30 @@ do_execsql_test 4.4 { INSERT INTO vt0(vt0) VALUES('integrity-check'); } +#------------------------------------------------------------------------- +# Ticket [81a7f7b9]. +# +reset_db +do_execsql_test 5.0 { + CREATE VIRTUAL TABLE vt0 USING fts5(c0, c1); + INSERT INTO vt0(vt0, rank) VALUES('pgsz', '65536'); + WITH s(i) AS ( + SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<1236 + ) + INSERT INTO vt0(c0) SELECT '0' FROM s; +} {} + +do_execsql_test 5.1 { + UPDATE vt0 SET c1 = 'T,D&p^y/7#3*v