Improved detection of corruption in the %_stat table of FTS4.
Chromium ticket 1025467. FossilOrigin-Name: 10f8a3b718e0f47be528fba086c318e1dfe18ead383d01cfa24dedabad41e0a2
This commit is contained in:
parent
ac801803a5
commit
19d4175d65
@ -1065,10 +1065,10 @@ static int fts3MatchinfoSelectDoctotal(
|
||||
}
|
||||
pEnd = a + n;
|
||||
a += sqlite3Fts3GetVarintBounded(a, pEnd, &nDoc);
|
||||
if( nDoc==0 || a>pEnd ){
|
||||
if( nDoc<=0 || a>pEnd ){
|
||||
return FTS_CORRUPT_VTAB;
|
||||
}
|
||||
*pnDoc = (u32)nDoc;
|
||||
*pnDoc = nDoc;
|
||||
|
||||
if( paLen ) *paLen = a;
|
||||
if( ppEnd ) *ppEnd = pEnd;
|
||||
|
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Fix\san\sassert\sthat\scan\sfail\sif\sthe\sschema\sis\scorrupt.
|
||||
D 2019-11-17T11:47:50.999
|
||||
C Improved\sdetection\sof\scorruption\sin\sthe\s%_stat\stable\sof\sFTS4.\nChromium\sticket\s1025467.
|
||||
D 2019-11-18T10:37:57.210
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
@ -90,7 +90,7 @@ F ext/fts3/fts3_hash.c 8b6e31bfb0844c27dc6092c2620bdb1fca17ed613072db057d96952c6
|
||||
F ext/fts3/fts3_hash.h 39cf6874dc239d6b4e30479b1975fe5b22a3caaf
|
||||
F ext/fts3/fts3_icu.c 305ce7fb6036484085b5556a9c8e62acdc7763f0f4cdf5fd538212a9f3720116
|
||||
F ext/fts3/fts3_porter.c 3565faf04b626cddf85f03825e86056a4562c009
|
||||
F ext/fts3/fts3_snippet.c 70e8aa4a42a9e0338d0d73d0ec996db29ce5421404e29a86703cb8c39949b0cc
|
||||
F ext/fts3/fts3_snippet.c bc9b1236cf26013b584698277f7fc8d9e30cf2558b9555799a8d87a6fe55d5f6
|
||||
F ext/fts3/fts3_term.c f45a1e7c6ef464abb1231245d123dae12266b69e05cc56e14045b76591ae92d1
|
||||
F ext/fts3/fts3_test.c 73b16e229e517c1b1f0fb8e1046182a4e5dbc8dbe6eea8a5d4353fcce7dbbf39
|
||||
F ext/fts3/fts3_tokenize_vtab.c 1de9a61acfa2a0445ed989310c31839c57f6b6086dd9d5c97177ae734a17fd8b
|
||||
@ -973,7 +973,7 @@ F test/fts3sort.test ed34c716a11cc2009a35210e84ad5f9c102362ca
|
||||
F test/fts3tok1.test a663f4cac22a9505400bc22aacb818d7055240409c28729669ea7d4cc2120d15
|
||||
F test/fts3tok_err.test 52273cd193b9036282f7bacb43da78c6be87418d
|
||||
F test/fts3varint.test 0b84a3fd4eba8a39f3687523804d18f3b322e6d4539a55bf342079c3614f2ada
|
||||
F test/fts4aa.test 9a90721c2a36ef07783aa4b74f1425df4b8b5ab14749029026949c202c35fc4d
|
||||
F test/fts4aa.test 86cf2d603a7dcce9cfaea5f582699181f70896b521a05e8a1925638eb0dadeed
|
||||
F test/fts4check.test 6259f856604445d7b684c9b306b2efb6346834c3f50e8fc4a59a2ca6d5319ad0
|
||||
F test/fts4content.test 1518195a9f92b711d94419f76409a31cc78755854fb0abb1da2b74b9e0cf843e
|
||||
F test/fts4docid.test e33c383cfbdff0284685604d256f347a18fdbf01
|
||||
@ -1849,7 +1849,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 1e449687881f4d388e54a0e51bcabba41ab10cf7e596ff65e31e88a23c70d497
|
||||
R 34046cb8959003a11a67b66c8db4d70c
|
||||
P ed57c48e4bb337810521bda2da79614313e4835a317ca4eadb52bd67e4eadf98
|
||||
R 11f48b2460fa250b126c367bee79a533
|
||||
U drh
|
||||
Z b99bb99bc2fe46e8b5443bc31b14c739
|
||||
Z 2cd5c488ac2ec64086389266d74cbd79
|
||||
|
@ -1 +1 @@
|
||||
ed57c48e4bb337810521bda2da79614313e4835a317ca4eadb52bd67e4eadf98
|
||||
10f8a3b718e0f47be528fba086c318e1dfe18ead383d01cfa24dedabad41e0a2
|
@ -226,7 +226,16 @@ do_catchsql_test fts4aa-5.70 {
|
||||
SELECT quote(matchinfo(t1,'a')) FROM t1 WHERE t1 MATCH 'one two';
|
||||
} {1 {database disk image is malformed}}
|
||||
|
||||
|
||||
# 2019-11-18 https://bugs.chromium.org/p/chromium/issues/detail?id=1025467
|
||||
db close
|
||||
sqlite3 db :memory:
|
||||
do_execsql_test fts4aa-6.10 {
|
||||
CREATE VIRTUAL TABLE f USING fts4();
|
||||
INSERT INTO f_segdir VALUES (77,91,0,0,'255 77',x'0001308000004d5c4ddddddd4d4d7b4d4d4d614d8019ff4d05000001204d4d2e4d6e4d4d4d4b4d6c4d004d4d4d4d4d4d3d000000004d5d4d4d645d4d004d4d4d4d4d4d4d4d4d454d6910004d05ffff054d646c4d004d5d4d4d4d4d3d000000004d4d4d4d4d4d4d4d4d4d4d69624d4d4d04004d4d4d4d4d604d4ce1404d554d45');
|
||||
INSERT INTO f_segdir VALUES (77,108,0,0,'255 77',x'0001310000fa64004d4d4d3c5d4d654d4d4d614d8000ff4d05000001204d4d2e4d6e4d4d4dff4d4d4d4d4d4d00104d4d4d4d000000004d4d4d0400311d4d4d4d4d4d4d4d4d4d684d6910004d05ffff054d4d6c4d004d4d4d4d4d4d3d000000004d4d4d4d644d4d4d4d4d4d69624d4d4d03ed4d4d4d4d4d604d4ce1404d550080');
|
||||
INSERT INTO f_stat VALUES (0,x'80808080100000000064004d4d4d3c4d4d654d4d4d614d8000ff4df6ff1a00204d4d2e4d6e4d4d4d104d4d4d4d4d4d00104d4d4d4d4d4d69574d4d4d000031044d4d4d3e4d4d4c4d05004d6910');
|
||||
SELECT quote(matchinfo(f,'pnax')) from f where f match '0 1';
|
||||
} {X'0200000000000000000000000E0000000E00000001000000010000000100000001000000'}
|
||||
|
||||
|
||||
finish_test
|
||||
|
Loading…
x
Reference in New Issue
Block a user