SQLite Forum

a SQL plain text discoverd by fuzzer causes SEGV
Login
- 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?