New issue
Advanced search Search tips

Issue 913915 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

ASSERT: iStartLeaf<=iEndLeaf

Project Member Reported by ClusterFuzz, Dec 11

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=5658620030877696

Fuzzer: libFuzzer_sqlite3_fts3_lpm_fuzzer
Fuzz target binary: sqlite3_fts3_lpm_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: ASSERT
Crash Address: 
Crash State:
  iStartLeaf<=iEndLeaf
  sqlite3Fts3SegReaderNew
  fts3SegReaderCursor
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=615337:615339

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5658620030877696

Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for more information.
 
Project Member

Comment 1 by ClusterFuzz, Dec 11

Components: Internals>Storage
Labels: Test-Predator-Auto-Components
Automatically applying components based on crash stacktrace and information from OWNERS files.

If this is incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 2 by ClusterFuzz, Dec 11

Cc: mpdenton@chromium.org
Labels: ClusterFuzz-Auto-CC
Automatically adding ccs based on OWNERS file / target commit history.

If this is incorrect, please add ClusterFuzz-Wrong label.
Project Member

Comment 3 by ClusterFuzz, Dec 11

Labels: Test-Predator-Auto-Owner
Owner: mpdenton@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/7d3def8575ecd2e5e2e7ab7f585961206007bd25 (Adds LPM-based SQLite fuzzer).

If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
Owner: pwnall@chromium.org
Cc: drhsql...@gmail.com danielk1...@gmail.com
Test-case:
ALTER TABLE main.Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
VACUUM Schema0;
DETACH DATABASE temp;
BEGIN TRANSACTION;
BEGIN TRANSACTION;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   UNIQUE ON CONFLICT ROLLBACK  ;
DETACH DATABASE temp;
INSERT INTO Table0_segdir DEFAULT VALUES;
UPDATE Table0_segdir SET start_block = 1;
ALTER TABLE Table0 ADD COLUMN Col0 DEFAULT 65536  ;
ALTER TABLE Table0 ADD Col0 DEFAULT FALSE  NOT NULL   ;
ALTER TABLE Table0 RENAME Col0 TO Col0;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  ;
ALTER TABLE Table0 ADD Col0 ;
DELETE FROM Table0_segdir;
ALTER TABLE Table0 RENAME TO Table0;
BEGIN EXCLUSIVE TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ROLLBACK TRANSACTION;
ALTER TABLE Table0 ADD docid DEFAULT 65536  ;
ALTER TABLE Table0 RENAME Col0 TO Col0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 UNIQUE   DEFAULT 0  ;
DETACH DATABASE Schema0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  CONSTRAINT ColConstraint0 UNIQUE   ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 0  DEFAULT 65536  ;
CREATE VIRTUAL TABLE Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 ;
UPDATE Table0_segdir start_block = 0;
UPDATE Table0   SET Col0 = 1 ;
INSERT INTO Table0 VALUES (1)  ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE INDEX Index0 ON Table0(Col0  );
ALTER TABLE Table0 ADD Col0 DEFAULT 1  CONSTRAINT ColConstraint0 UNIQUE ON CONFLICT ROLLBACK  ;
ROLLBACK TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Schema0.Table0 RENAME TO Table0;
CREATE INDEX Index0 ON Table0(Col0  );
UPDATE Table0_segdir SET start_block = 1;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIRTUAL TABLE Table0 USING fts3();
END;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 ADD COLUMN Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
BEGIN EXCLUSIVE TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 UNIQUE   DEFAULT 1  ;
ALTER TABLE Table0 ADD COLUMN Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 ;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT 1  DEFAULT 65536  COLLATE BINARY  DEFAULT CURRENT_TIMESTAMP  DEFAULT CURRENT_DATE  UNIQUE   ;
DETACH DATABASE temp;
UPDATE Table0_segdir start_block = 0;
ALTER TABLE Table0 ADD Col0 BLOB(1182208)  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Schema0.Table0 ADD Col0 ;
BEGIN EXCLUSIVE TRANSACTION;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 CHECK(TRUE)  ;
SELECT DISTINCT * ;
ALTER TABLE temp.Table0 ADD Col0 DEFAULT 0  ;
ALTER TABLE Table0 ADD Col0 BLOB  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 UNIQUE ON CONFLICT ROLLBACK  ;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE temp.Table0 RENAME TO Table0;
ROLLBACK TRANSACTION;
ALTER TABLE Table0 RENAME rowid TO Col0;
ANALYZE Index0;
ANALYZE Schema0;
DETACH DATABASE temp;
ALTER TABLE Table0 RENAME TO Table0;
COMMIT;
ATTACH DATABASE '' AS Schema0;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
ALTER TABLE Table0 RENAME TO Table0;
UPDATE Table0_segdir start_block = 0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT 65536  ;
CREATE INDEX Index0 ON Table0(Col0  );
ALTER TABLE Table0 ADD Col0 BLOB(1182208)  DEFAULT 1  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
CREATE VIRTUAL TABLE Schema2.Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  ;
ALTER TABLE Table0 RENAME TO Table0;
SELECT DISTINCT * ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC  AUTOINCREMENT  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 UNIQUE   DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE temp.Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD docid CHECK(FALSE)  ;
ALTER TABLE Table0 ADD Col0 UNIQUE   ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT 1  DEFAULT 1  ;
ALTER TABLE temp.Table0 ADD Col0 DEFAULT 1  ;
COMMIT;
DETACH DATABASE temp;
DETACH DATABASE Schema0;
ALTER TABLE Table0 ADD Col0 DEFAULT '�'  UNIQUE ON CONFLICT ROLLBACK  UNIQUE   ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Table0 ;
ALTER TABLE Table0 RENAME TO Table0;
DROP VIEW IF EXISTS View0;
ALTER TABLE Table0 ADD docid ;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIRTUAL TABLE Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 ;
COMMIT TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
DELETE FROM Table0_segments;
ALTER TABLE Table0 ADD Col0 ;
ANALYZE Schema0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
DELETE FROM Table0   ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ROLLBACK TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 CONSTRAINT ColConstraint0 DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 UNIQUE   UNIQUE ON CONFLICT ROLLBACK  CONSTRAINT ColConstraint0 DEFAULT 1  NOT NULL   PRIMARY KEY DESC   DEFAULT 1  CONSTRAINT ColConstraint4 DEFAULT 65536  ;
ALTER TABLE Table0 ADD Col0 ;
SELECT DISTINCT * ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE Table0 RENAME TO Table0;
VACUUM Schema0;
DROP VIEW IF EXISTS View0;
ALTER TABLE Table0 RENAME TO Table0;
WITH Table0 AS (SELECT DISTINCT * )    SELECT DISTINCT * ;
BEGIN IMMEDIATE TRANSACTION;
DETACH DATABASE temp;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIEW temp.View0 SELECT DISTINCT * ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
UPDATE Table0_segdir start_block = 0;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT '�'  UNIQUE ON CONFLICT ROLLBACK  DEFAULT 1  DEFAULT 65536  UNIQUE ON CONFLICT ROLLBACK  ;
COMMIT TRANSACTION;
DELETE FROM Table0_segdir WHERE blockid || 1;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT CURRENT_TIMESTAMP  ;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0 DEFAULT VALUES ;
ALTER TABLE Table0 RENAME TO Table0;
BEGIN DEFERRED TRANSACTION;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   DEFAULT 1  ;
VACUUM Schema0;
DROP TABLE Table0;
VACUUM;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   ;
DELETE FROM Table0   ;
DELETE FROM Table0_segdir;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 UNIQUE   DEFAULT 1  ;
CREATE TRIGGER Trigger0 DELETE ON Table0 BEGIN DELETE FROM Table0   ; END;
BEGIN EXCLUSIVE TRANSACTION;
ALTER TABLE Table0 RENAME Table0 TO Col0;
ALTER TABLE Table0 ADD docid ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  PRIMARY KEY DESC   ;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIRTUAL TABLE Table0 USING fts3();
ANALYZE Schema0;
DELETE FROM Table0  WHERE Col0 = 1  ;
DETACH DATABASE temp;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIRTUAL TABLE Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 COLLATE NOCASE  ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIEW View0 SELECT DISTINCT * ;
DELETE FROM Table0_segdir;
INSERT INTO Table0_segdir DEFAULT VALUES;
CREATE VIRTUAL TABLE Table0 USING fts3();
DETACH DATABASE Schema2;
BEGIN IMMEDIATE TRANSACTION;
DELETE FROM Table0_segments;
ALTER TABLE Table0 RENAME TO Table0;
BEGIN TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
CREATE INDEX Index0 ON Table0(Col0  );
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE Table0 ADD Col0 DEFAULT CURRENT_TIME  UNIQUE   ;
BEGIN EXCLUSIVE TRANSACTION;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  DEFAULT 1  ;
ALTER TABLE main.Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT CURRENT_DATE  CONSTRAINT ColConstraint2 DEFAULT x'fffffff9'  ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIRTUAL TABLE Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 DEFAULT 1  DEFAULT TRUE  DEFAULT 65536  DEFAULT 1  DEFAULT 1  ;
DETACH DATABASE temp;
DELETE FROM Table0_segments;
UPDATE Table0   SET Col0 = 1 ;
ROLLBACK TRANSACTION;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD docid ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
SELECT DISTINCT * LIMIT 1 ;
ATTACH DATABASE '' AS Schema0;
CREATE TRIGGER Trigger0 DELETE ON Table0 BEGIN DELETE FROM Table0   ; END;
INSERT INTO Table0 DEFAULT VALUES  ;
ALTER TABLE Table0 ADD COLUMN Col0 ;
SELECT DISTINCT * UNION VALUES (1)  ;
ALTER TABLE Table0 ADD Col0 ;
COMMIT;
ALTER TABLE Table0 RENAME Col0 TO Col0;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD Col0 UNIQUE ON CONFLICT ROLLBACK  UNIQUE ON CONFLICT ROLLBACK  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  UNIQUE ON CONFLICT ROLLBACK  DEFAULT 0  ;
SELECT * FROM Table0 WHERE Col0 MATCH '';
COMMIT;
ALTER TABLE Table0 ADD Col0 ;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ROLLBACK TRANSACTION;
CREATE VIEW Schema0.View0 SELECT DISTINCT * ;
SELECT * FROM Table0 WHERE Col0 MATCH '';
ALTER TABLE Table0 ADD docid DEFAULT 1  UNIQUE ON CONFLICT ROLLBACK  DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 BLOB(0)  UNIQUE ON CONFLICT ROLLBACK  DEFAULT 65536  PRIMARY KEY DESC   ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME Col0 TO Col0;
ALTER TABLE Table0 RENAME TO Table0;
ANALYZE Index0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
DELETE FROM Table0_segments;
UPDATE Table0_segdir SET start_block = 1;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  CONSTRAINT ColConstraint0 UNIQUE   ;
ALTER TABLE Table0 ADD Col16 DEFAULT 65536  DEFAULT 65536  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 BLOB  DEFAULT 65536  DEFAULT 1  ;
VACUUM;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 UNIQUE   ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD docid CONSTRAINT ColConstraint0 DEFAULT 1  ;
COMMIT;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 BLOB(1182208)  DEFAULT FALSE  REFERENCES Table0  PRIMARY KEY DESC   ;
ALTER TABLE Table0 ADD Col0 UNIQUE ON CONFLICT ROLLBACK  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 BLOB  DEFAULT 0  DEFAULT 1  PRIMARY KEY DESC   ;
VACUUM;
ALTER TABLE Table0 ADD Col0 BLOB(0)  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  );
ALTER TABLE Table0 ADD Col0 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
ALTER TABLE Table0 ADD docid PRIMARY KEY DESC   ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 ;
UPDATE Table0_segdir start_block = 0;
ALTER TABLE Table0 ADD Col0 ;
DETACH DATABASE temp;
UPDATE Table0   SET Col0 = 1 ;
ALTER TABLE Table0 RENAME TO Table0;
SELECT DISTINCT * ORDER BY 1  , 1    ;
ALTER TABLE Schema0.Table0 ADD Col0 PRIMARY KEY DESC   DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD docid ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT x''  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
DETACH DATABASE temp;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE temp.Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
CREATE VIEW View0 SELECT DISTINCT * ;
ALTER TABLE Table0 ADD Col0 ;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0 DEFAULT VALUES  ;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0(Table0) VALUES('optimize');
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
INSERT INTO Table0_segdir(start_block) VALUES(1, 1);
ALTER TABLE Table0 ADD Col0 DEFAULT 1  DEFAULT 1  ;
BEGIN DEFERRED TRANSACTION;
ALTER TABLE main.Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE temp.Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 BLOB(0)  DEFAULT 1  UNIQUE ON CONFLICT ROLLBACK  DEFAULT 0  UNIQUE ON CONFLICT ROLLBACK  ;
ROLLBACK TRANSACTION;
DETACH DATABASE temp;
ALTER TABLE Table0 ADD Col0 ;
VACUUM;
ALTER TABLE Table0 ADD Table0 DEFAULT 1  ;
DROP VIEW Schema0 View0;
DROP VIEW main View0;
END;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 BLOB(0)  CHECK('�')  ;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIRTUAL TABLE Table0 USING fts3();
COMMIT;
COMMIT;
UPDATE Table0   SET Col0 = 1 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
DROP VIEW IF EXISTS View0;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD COLUMN Col0 UNIQUE ON CONFLICT ROLLBACK  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  UNIQUE ON CONFLICT ROLLBACK  UNIQUE ON CONFLICT REPLACE  ;
INSERT INTO Table0_segdir DEFAULT VALUES;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIRTUAL TABLE Table1 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
ALTER TABLE Table0 ADD Col0 UNIQUE   ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE VIRTUAL TABLE Table0 USING fts3();
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 ;
CREATE VIRTUAL TABLE Table0 USING fts3();
BEGIN TRANSACTION;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 RENAME rowid TO Col0;
ALTER TABLE Table0 ADD Col0 DEFAULT 0  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 ;
DETACH DATABASE temp;
UPDATE Table0_segdir SET blockid = 1;
ALTER TABLE Table0 RENAME TO Table0;
UPDATE Table0  INDEXED BY Index0  SET Col0 = 1 ;
ALTER TABLE Table0 ADD Col0 UNIQUE ON CONFLICT REPLACE  ;
ALTER TABLE Table0 ADD Col0 PRIMARY KEY DESC   ;
ALTER TABLE Table0 RENAME TO Table0;
ALTER TABLE Table0 ADD Col0 UNIQUE   UNIQUE   DEFAULT 1  UNIQUE ON CONFLICT ABORT  ;
ALTER TABLE Table0 ADD Col0 ;
ALTER TABLE Table0 ADD Col0 DEFAULT 65536  DEFAULT 1  ;
ALTER TABLE Table0 ADD Col0 DEFAULT 0  DEFAULT 65536  ;
ALTER TABLE Table0 ADD Col0 BLOB  DEFAULT 1  ;
DETACH DATABASE temp;
I think I  can get a much smaller case here, just one second.
Much nicer:
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir start_block = 0;
INSERT INTO Table0 VALUES (1)  ;
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0(Table0) VALUES('optimize');
UPDATE Table0_segdir start_block = 0;
CREATE VIRTUAL TABLE Schema2.Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir start_block = 0;
INSERT INTO Table0 DEFAULT VALUES ;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
INSERT INTO Table0 DEFAULT VALUES  ;
SELECT * FROM Table0 WHERE Col0 MATCH '';
SELECT * FROM Table0 WHERE Col0 MATCH '';
UPDATE Table0_segdir SET start_block = 1;
UPDATE Table0_segdir start_block = 0;
INSERT INTO Table0(Table0) VALUES('optimize');
INSERT INTO Table0 DEFAULT VALUES  ;
INSERT INTO Table0(Table0) VALUES('optimize');
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table1 USING fts3();
UPDATE Table0_segdir SET start_block = 1;
CREATE VIRTUAL TABLE Table0 USING fts3();
CREATE VIRTUAL TABLE Table0 USING fts3();
UPDATE Table0_segdir SET blockid = 1;

Short test case:

CREATE VIRTUAL TABLE t1 USING fts3();
INSERT INTO t1 VALUES('one two three');
UPDATE t1_segdir SET start_block = 1;
INSERT INTO t1(t1) VALUES('optimize');

Notice that this involves making direct changes to a shadow table, which is no longer allowed in Chrome due to the new SQLITE_DBCONFIG_DEFENSIVE flag.  So this issue cannot come up in Chrome - only in the fuzzer.  It still needs to be fixed, though.
Fixed by SQLite checkin https://www.sqlite.org/src/info/4cdcda408a4edcd2

This was an incorrect assert() statement. It is not a defect in release code.
Labels: -Pri-1 Pri-2
I will not be backporting this fix. We'll get it in the next SQLite upgrade.

Sign in to add a comment