- command: sqlite3 < crash.sql - version: 3.37.0 - compile params: Clang-12 with ASAN (SEGV can also be triggered without ASAN) PoC (crash.sql): ```sql CREATE TABLE t1 ( c INTEGER PRIMARY KEY ON CONFLICT REPLACE , b TEXT , a UNIQUE ) ; INSERT INTO t1(b) VALUES(1); CREATE TRIGGER c0 AFTER UPDATE ON t1 BEGIN INSERT INTO t1 VALUES(new.c, new.b, new.a) ON CONFLICT (a) DO NOTHING; END; UPDATE t1 SET b = 0; ``` gdb backtrace: ``` Program received signal SIGSEGV, Segmentation fault. 0x00000000008d18cb in sqlite3VdbeExec (p=<optimized out>) at sqlite3.c:92862 92862 rc = sqlite3BtreeInsert(pC->uc.pCursor, &x, (gdb) bt #0 0x00000000008d18cb in sqlite3VdbeExec (p=<optimized out>) at sqlite3.c:92862 #1 0x00000000008807c8 in sqlite3_step (pStmt=<optimized out>) at sqlite3.c:85264 #2 0x00000000004108a5 in exec_prepared_stmt (pArg=0x7ffe7dedb9c0, pStmt=<optimized out>) at shell.c:14423 #3 0x00000000004099cd in shell_exec (pArg=<optimized out>, zSql=0x610000000140 "UPDATE t1 SET b = 0;", pzErrMsg=<optimized out>) at shell.c:14738 #4 0x000000000043ceb8 in runOneSqlLine (p=<optimized out>, zSql=<optimized out>, in=<optimized out>, startline=<optimized out>) at shell.c:21956 #5 0x00000000003cb368 in process_input (p=0x7ffe7dedb9c0) at shell.c:22066 #6 0x00000000003c1895 in main (argc=<optimized out>, argv=<optimized out>) at shell.c:22890 ``` Maybe it is a bug?