New issue
Advanced search Search tips

Issue 917321 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

ASSERT: (pOp->p5 & SQLITE_JUMPIFNULL)==0

Project Member Reported by ClusterFuzz, Dec 21

Issue description

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

Fuzzer: libFuzzer_sqlite3_lpm_fuzzer
Fuzz target binary: sqlite3_lpm_fuzzer
Job Type: x86_libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: ASSERT
Crash Address: 
Crash State:
  (pOp->p5 & SQLITE_JUMPIFNULL)==0
  sqlite3VdbeExec
  sqlite3Step
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=x86_libfuzzer_chrome_asan_debug&range=618090:618108

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

Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for instructions to reproduce this bug locally.
 
Project Member

Comment 1 by ClusterFuzz, Dec 21

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 21

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 21

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/+/b880687775ccc1a24323912f75efb50d21d98685 (Add well-formed SQLite LPM fuzzer seed corpus).

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.
Cc: drhsql...@gmail.com danielk1...@gmail.com
Labels: -Pri-1 Pri-2
Owner: pwnall@chromium.org
It looks like adding the corpus and getting us to some more complicated joins has gotten us to some more complicated asserts! They are quite a bit longer though.

Dr. Hipp, as with all asserts, please let us know whether this can be leveraged for memory corruption or whether it's just an assert to help you with testing.

CREATE TABLE temp.Table0 (Col0 INTEGER  REFERENCES Table0  CONSTRAINT ColConstraint1 DEFAULT 1  DEFAULT 1  DEFAULT (strftime('', '', 'start of month') )  REFERENCES Table0 ON DELETE RESTRICT  ON DELETE SET NULL  ON UPDATE SET NULL  DEFERRABLE INITIALLY DEFERRED  PRIMARY KEY ASC ON CONFLICT ABORT  ) WITHOUT ROWID ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col11  );
CREATE INDEX Index0 ON Table0('/'  );
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 VALUES (1), (CURRENT_TIME)  ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  , Col0  );
SELECT DISTINCT * ;
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY 1 HAVING 1 COLLATE BINARY  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY 1 HAVING CASE WHEN 1 THEN 1 ELSE strftime('%%', '', 'start of month')  END  COLLATE BINARY  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
ROLLBACK TRANSACTION;
ROLLBACK TRANSACTION;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  )WHERE Col0 = 1 ;
CREATE TEMP TABLE IF NOT EXISTS Table0 (Col0 , Col0 BLOB(0)  ) ;
CREATE TABLE main.Table0 (Col0 BLOB  , PRIMARY KEY(1  , x'27'  )   ) WITHOUT ROWID ;
WITH Table0 AS (SELECT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 , 1 AS Col0  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 VALUES ('`')  ;
INSERT OR ROLLBACK INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT 1 Col0 , 1 Col0  )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE TEMP TABLE IF NOT EXISTS Table0 (Col0 , Col0 BLOB(0)  ) ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
INSERT INTO Table0 VALUES (1)  ;
WITH Table0(Col4) AS (SELECT DISTINCT * )    INSERT INTO Table0 (Col0, Col0, Col0, Col0) DEFAULT VALUES ;
WITH Table0 AS (SELECT ALL * ORDER BY 1  , 1 COLLATE RTRIM    )    INSERT INTO Table0 AS Table1 DEFAULT VALUES ;
INSERT INTO Table0 VALUES (1), (1)  ;
CREATE INDEX Index0 ON Table0(1  );
INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * UNION VALUES (1, (WITH Table0 AS (SELECT DISTINCT 1 Col0 , 1 Col0  )    SELECT DISTINCT * UNION VALUES (1, (SELECT DISTINCT * UNION VALUES (1), (1)  ) ), (1)  ) ), (1, 1)  )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0(1  );
WITH RECURSIVE Table0 AS (SELECT DISTINCT * WHERE Col0 - 1  )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE TEMP TABLE IF NOT EXISTS Table0 (Col0 , Col0 BLOB(0)  ) ;
INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0, rowid) AS (WITH Table0(rowid) AS (WITH Table0(Col0) AS (SELECT DISTINCT * )    SELECT DISTINCT * )    SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY 0  )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT Table0.* UNION VALUES (256)  )    INSERT INTO Table0 AS Table0 SELECT DISTINCT *  ;
WITH Table0(Col0, Col0) AS (SELECT DISTINCT * GROUP BY CASE WHEN 1 THEN 1 ELSE strftime('', '', 'start of month')  END  HAVING 1  )    UPDATE Table0   SET Col0 = 1 ;
INSERT INTO Table0 VALUES (1), (1 NOT BETWEEN 1 AND 1), (1)  ;
CREATE TEMP TABLE Table0 (Col0 ) ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  )WHERE Col0 & 1 ;
WITH Table0(Col0, Col0) AS (SELECT DISTINCT 1 Col0 , 1 Col0  FROM Table0  LEFT JOIN  Table0  (Col0, Col0)    )    INSERT INTO Table0 SELECT DISTINCT * ORDER BY 1  , 1 ASC    ;
INSERT INTO Table0 (Col0) DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 Col0  )    UPDATE Table0   SET Col0, Col16 = 1 ;
WITH Table0(Col16) AS (SELECT DISTINCT 1 , Table0.* GROUP BY x'fffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffa'  )    UPDATE Table0   SET Col0 = 1 ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  );
CREATE INDEX Index0 ON Table0(Col0 COLLATE RTRIM  );
WITH Table0(Col0) AS (SELECT DISTINCT 1  )    UPDATE Table0   SET Col0, Col16 = 1 ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  , Col0  );
UPDATE OR IGNORE Table0   SET Col0 = 1 ;
CREATE TABLE Table0 (Col0 ) ;
UPDATE Table0   SET Col0 = 1 ;
CREATE INDEX Index0 ON Table0(Col0  );
ROLLBACK TRANSACTION;
WITH Table0 AS (SELECT ALL * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 DEFAULT 1  ) ;
ROLLBACK TRANSACTION;
WITH Table0 AS (SELECT DISTINCT * GROUP BY 0  LIMIT 1 )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE UNIQUE INDEX Index8 ON Table0(1 IS 1   );
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 CONSTRAINT ColConstraint1 COLLATE NOCASE  ) ;
ROLLBACK TRANSACTION;
WITH Table0(Col0) AS (SELECT DISTINCT 1 Col0 , 1 Col0 , * UNION VALUES (1, 1), (1)  )    UPDATE Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0(Col0) AS (SELECT DISTINCT Table0.*, 1 , 1 BETWEEN 1 AND x'08' Col0  UNION SELECT DISTINCT *  )    UPDATE Table0   SET Col0 = 1 WHERE x'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'  ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * FROM Table0    EXCEPT VALUES (1), (1, 1 BETWEEN RAISE(ROLLBACK , '!')  AND 1)  )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 ) ;
INSERT INTO Table0 VALUES (1), (1)  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0 AS Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY 1  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT ALL * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 BETWEEN 1 ()  AND 1 Col0  )    UPDATE Table0   SET Col0 = 1 ;
INSERT INTO temp.Table0 DEFAULT VALUES  ;
INSERT OR REPLACE INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TABLE IF NOT EXISTS Table0 (Col0 BLOB  ) ;
INSERT INTO Table0 VALUES ('`')  ;
WITH Table0 AS (SELECT DISTINCT Col0 )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0((1, TRUE)   );
WITH Table0(Col0) AS (SELECT DISTINCT *, 1 , 1  UNION SELECT DISTINCT * WHERE 1   )    UPDATE Table0   SET Col0 = 1 ;
CREATE UNIQUE INDEX Schema0.Index0 ON Table0(Col0  );
CREATE INDEX Index0 ON Table0(1  );
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY 1 HAVING 1  )    UPDATE Table0   SET Col0 = 1 ;
CREATE TABLE Table0 (Col0 CONSTRAINT ColConstraint1 DEFAULT 1  ) ;
CREATE INDEX Index0 ON Table0(1  );
WITH Table0 AS (SELECT DISTINCT Table0.* )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0(1  );
CREATE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * FROM Schema0.Table0    GROUP BY 1 HAVING RAISE(IGNORE)   )  Table0 AS (SELECT ALL * GROUP BY 1 HAVING 1  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * UNION VALUES (1, (WITH Table0 AS (SELECT DISTINCT * ORDER BY 1  , 1    )    SELECT DISTINCT * UNION VALUES (1, 1), (1)  ) ), (1, NULL)  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0, rowid) AS (WITH Table0(rowid) AS (WITH Table0(Col0) AS (SELECT DISTINCT * )    SELECT DISTINCT * )    SELECT * )    UPDATE Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * WHERE Col0 - 1  )    INSERT INTO Table0 VALUES (1), (1)  ;
WITH Table0 AS (SELECT DISTINCT * FROM Table0  LEFT JOIN  Table0        )    INSERT INTO Table0 AS Table0 DEFAULT VALUES  ;
CREATE TEMP TABLE Table0 (Col0 CONSTRAINT ColConstraint1 DEFAULT 1  ) ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * UNION VALUES (1), (1)  UNION VALUES (1)  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT * )    UPDATE Table0   SET Col0 = 1 ;
CREATE TABLE Table0 (Col0 NUMERIC  ) ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0, Col16 = 1 ;
SELECT DISTINCT *, 1  GROUP BY 1 HAVING CURRENT_TIMESTAMP  ;
CREATE INDEX Index0 ON Table0(Col0 COLLATE RTRIM  );
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
ROLLBACK TRANSACTION;
CREATE INDEX Index0 ON Table0(Col0  )WHERE changes()  ;
WITH RECURSIVE Table0 AS (SELECT ALL * WHERE Col0 - 1  )    INSERT INTO Table0 DEFAULT VALUES ;
SELECT DISTINCT Table0.* LIMIT 1 , 1 ;
CREATE UNIQUE INDEX main.Index0 ON Table0(Col5  );
WITH Table0 AS (SELECT DISTINCT * )  Table0(Col0) AS (SELECT DISTINCT * FROM application_id()  Table0     UNION ALL VALUES (1)  )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 Col14  )    UPDATE temp.Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  );
CREATE TEMP TABLE IF NOT EXISTS Table0 (Col0 CONSTRAINT ColConstraint1 DEFAULT 1  ) ;
CREATE INDEX Index0 ON Table0(Col0 DESC );
CREATE INDEX Index8 ON Table0(Col0  );
UPDATE Table0   SET Col0 = 1 ;
SELECT DISTINCT * WHERE 1  ;
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 VALUES ('`')   ;
INSERT INTO Table0 VALUES (1), (1)  ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col12  );
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT * )    INSERT INTO Table0 DEFAULT VALUES ;
INSERT INTO Table0 AS Table0 VALUES (1), (0)  ;
WITH Table0(Col0, Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 VALUES (1), (1)  ;
INSERT INTO temp.Table0 AS Table0 DEFAULT VALUES  ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT ALL * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 VALUES (1), (1)  ;
ROLLBACK TRANSACTION;
CREATE INDEX Index0 ON Table0(Col0 DESC );
WITH Table0 AS (SELECT DISTINCT Table0.*, 1  )    INSERT INTO Table0 AS Table0 SELECT DISTINCT *  ;
INSERT INTO Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 CONSTRAINT ColConstraint1 DEFAULT 1  DEFAULT ((1, FALSE) )  ) ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  )WHERE 1 ;
INSERT INTO Table0 DEFAULT VALUES  ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT Table0.*, *, 1  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE TABLE main.Table0 (Col0 , PRIMARY KEY(1  , 16  )   ) WITHOUT ROWID ;
WITH Table0 AS (WITH Table0 AS (SELECT DISTINCT * )    SELECT DISTINCT * FROM application_id()  Table0     UNION SELECT DISTINCT *   UNION VALUES (1)  )  Table0 AS (SELECT DISTINCT * UNION VALUES (1)  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * WHERE Col0 || ''  )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE temp.Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )  Table0(Col0) AS (SELECT DISTINCT * FROM application_id()  Table0     UNION ALL VALUES (1)  )    INSERT INTO Table0 DEFAULT VALUES ;
ALTER TABLE Table0 RENAME TO Table0;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  , Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT 1 , 1 Col0  UNION SELECT DISTINCT * WHERE 1 BETWEEN 1 AND 0   )    UPDATE Table0   SET Col0 = 1 WHERE x'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
CREATE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY CASE WHEN 1 THEN 1 ELSE strftime('', '', 'start of month')  END  HAVING CASE WHEN 1 THEN 1 ELSE CURRENT_TIMESTAMP END  COLLATE BINARY  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
CREATE INDEX Index0 ON Table0(Col0  )WHERE Col0 || 1 ;
INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 (Col0, Col0, Col0, Col0) DEFAULT VALUES ;
CREATE UNIQUE INDEX IF NOT EXISTS Index0 ON Table0(Col0  , Col0  );
CREATE TEMP TABLE Table0 (Col0 ) ;
CREATE TEMP TABLE Table0 (Col0 ) ;
INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 BETWEEN 1 AND x'08' Col0 , 1 Col0 , 1 , 1  GROUP BY x'fffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffa'  UNION SELECT DISTINCT * WHERE CURRENT_TIMESTAMP   )    UPDATE Table0   SET Col0 = 1 WHERE changes()   ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  );
CREATE TEMP TABLE IF NOT EXISTS Table0 (Col12 ) WITHOUT ROWID ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE INDEX Index8 ON Table0(Col0  );
WITH Table0(rowid) AS (SELECT DISTINCT * UNION SELECT DISTINCT * WHERE 1   )    UPDATE Table0   SET Col0, Col16 = 1 WHERE 1  ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
CREATE INDEX main.Index0 ON Table0(Col0  )WHERE Col0 || x'2d' BETWEEN 1 AND 1 ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
CREATE INDEX Index0 ON Table0(Col0  );
INSERT INTO Table0 DEFAULT VALUES ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
SELECT DISTINCT *, 1  GROUP BY 1 HAVING CURRENT_TIMESTAMP  ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY '����������������������������������������������������������������������������������������������������������������������������'  )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 ) ;
CREATE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT 1 Col0  )    UPDATE Table0   SET Col0 = 1 ;
SELECT DISTINCT * LIMIT 1 , 1 ;
WITH Table0 AS (SELECT DISTINCT Table0.* )    INSERT INTO Table0 DEFAULT VALUES ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 VALUES ('���������������������������������������������')  ;
CREATE INDEX Index0 ON Table0(Col0  );
INSERT OR REPLACE INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * FROM Table0  LEFT JOIN  Table0  ON 0  LEFT JOIN  Table0      )    INSERT INTO Table0 DEFAULT VALUES ;
CREATE TABLE Table0 (Col0 ) WITHOUT ROWID ;
CREATE INDEX Index0 ON Table0(Col0  )WHERE changes()  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH Table0 AS (WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT 1 , 1 BETWEEN 1 AND x'08' Col0  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT ALL * GROUP BY 1 HAVING 1 LIKE 1   )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 (Col0, Col0, Col0, Col0) DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0(Col0  )WHERE Col0 || 1 ;
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY 1 HAVING CASE WHEN 1 THEN 1 ELSE changes()  END  COLLATE BINARY  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT 1  )    UPDATE Table0   SET Col0, Col16 = 1 ;
CREATE INDEX Index8 ON Table0(1 IS 1   );
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  );
INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 (Col0, Col0, Col0, Col0) DEFAULT VALUES ;
CREATE INDEX Index0 ON Table0((SELECT DISTINCT * )  COLLATE RTRIM  );
INSERT INTO Table0 VALUES (1), (1)  ;
CREATE TABLE main.Table0 (Col0 BLOB  , PRIMARY KEY(1  , 16  )   ) WITHOUT ROWID ;
INSERT INTO Table0 AS Table4 VALUES (1), (1 BETWEEN 1 AND 1)  ;
CREATE TEMP TABLE Table0 (Col0 DEFAULT 1  ) ;
CREATE TABLE Table0 (Col0 BLOB  ) ;
WITH Table0 AS (SELECT DISTINCT Col0 )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY 0  )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 , 1 BETWEEN 1 BETWEEN 1 AND NULL AND 4096 Col0  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY '�' HAVING 1 IS 1   LIMIT 1 , TRUE )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0, Col0) AS (SELECT DISTINCT 1 , 1 pragma_integrity_check('306708480')   BETWEEN 1 AND x'08' Col0  )    UPDATE Table5   SET Col0 = 1 ;
CREATE TEMP TABLE Table0 (Col0 ) ;
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  );
WITH RECURSIVE Table0 AS (SELECT DISTINCT * FROM Table0  NATURAL LEFT JOIN  Table0      EXCEPT VALUES (1)  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 WHERE Col0 = 1  ;
WITH Table0 AS (SELECT ALL * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 (Col0, Col0, Col0, Col0) DEFAULT VALUES ;
CREATE UNIQUE INDEX Index0 ON Table0(Col0  );
WITH Table0(Col0) AS (SELECT DISTINCT 1 , 1 BETWEEN 1 AND 0 Col0  GROUP BY changes()   )    UPDATE Table0   SET Col0 = 1 ;
INSERT OR REPLACE INTO Table0 DEFAULT VALUES  ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES ;
SELECT DISTINCT Table0.* LIMIT 1 , 1 ;
CREATE INDEX Index0 ON Table0(1  );
WITH Table0(Col0) AS (SELECT DISTINCT 1  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY 1 HAVING 1  )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
CREATE INDEX main.Index0 ON Table0(Col5  );
INSERT INTO Table0 DEFAULT VALUES  ;
CREATE TABLE Table0 (Col0 , Col0 , CONSTRAINT TableConstraint0 CHECK(1) ) ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  , Col0  );
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  , Col0  );
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 VALUES (1), (1)  ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * FROM Table0  NATURAL LEFT JOIN  Table0      EXCEPT VALUES (1)  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table4 AS Table0 DEFAULT VALUES ;
ALTER TABLE Table0 ADD Col0 CONSTRAINT ColConstraint4 DEFAULT 1  ;
WITH Table0 AS (SELECT DISTINCT 1 Col0  )    UPDATE Table0   SET Col0 = 1 ;
CREATE UNIQUE INDEX Index8 ON Table0(1 IS 1   , Col0  , 1 NOT LIKE ''   );
WITH Table0 AS (SELECT DISTINCT Table0.* WHERE Schema0.Col0 || 1  )    INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TABLE main.Table0 (Col0 BLOB  , PRIMARY KEY(1  , Col12  )   ) WITHOUT ROWID ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 Col0  )    UPDATE Table0   SET Col0 = 1 ;
INSERT INTO Table0 VALUES (1, 1), (1)  ;
CREATE INDEX Index0 ON Table0(1  );
CREATE INDEX Index8 ON Table0(1  );
CREATE INDEX Index0 ON Table0(1095216661760  );
CREATE UNIQUE INDEX Index8 ON Table0(1 IS 1   , Col0  , 1 NOT LIKE ''   );
UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * GROUP BY TRUE  )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE INDEX IF NOT EXISTS Index0 ON Table0(Col0  );
CREATE INDEX Schema0.Index0 ON Table0(Col0  , Col0 COLLATE NOCASE  );
WITH RECURSIVE Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 VALUES (1)  ;
SELECT DISTINCT * LIMIT 1 ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
INSERT INTO Table0 DEFAULT VALUES ;
WITH Table0(Col0) AS (SELECT DISTINCT 1 , * UNION SELECT DISTINCT Col0  )    UPDATE Table0   SET Col0 = 1 ;
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
CREATE TEMP TABLE Table0 (Col0 CONSTRAINT ColConstraint1 DEFAULT 1  ) ;
INSERT INTO Table0 AS Table0 DEFAULT VALUES ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    UPDATE OR FAIL Table0   SET Col0 = 1 ;
WITH Table0(Col0) AS (SELECT DISTINCT * GROUP BY 1 HAVING strftime('', '', '0 .4864days')   )    UPDATE Table0   SET Col0 = 1 ;
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 AS Table0 SELECT ALL *  ;
CREATE INDEX Index0 ON Table0(Col0  );
CREATE INDEX Index0 ON Table0(Col0  );
CREATE TEMP TABLE Table0 (Col0 ) ;
CREATE INDEX Index0 ON Table0(Col0  );
CREATE INDEX Index0 ON Table0(Col0  );
WITH Table0 AS (SELECT DISTINCT * )    INSERT INTO Table0 DEFAULT VALUES  ;
WITH Table0 AS (SELECT * )    UPDATE Table0   SET Col0 = 1 ;
INSERT INTO Table0 VALUES (1)  ;
WITH Table0(Col0, rowid) AS (WITH Table0(rowid) AS (WITH Table0(rowid) AS (SELECT DISTINCT * )    SELECT DISTINCT * )    SELECT DISTINCT * )    UPDATE Table0   SET Col0 = 1 ;

Simplified test case:

CREATE TABLE t1(x DEFAULT(strftime('','')) PRIMARY KEY)WITHOUT ROWID;
INSERT INTO t1 VALUES(1);
INSERT OR REPLACE INTO t1 DEFAULT VALUES;
UPDATE t1 SET x=1;

This problem was fixed by SQLite check-in https://www.sqlite.org/src/info/db8d1d12f5c16734

The problem is not a security issue.  The problem is that SQLite was allowing
NULL values into NOT NULL columns under some obscure circumstances, and
the presence of the NULL value in a NOT NULL columns was subsequently detected
by an assert().
Per the comments above, I won't be backporting this. We'll get it in the next SQLite upgrade.

Sign in to add a comment