diff options
author | drh <> | 2023-11-20 13:06:59 +0000 |
---|---|---|
committer | drh <> | 2023-11-20 13:06:59 +0000 |
commit | 0fcaf16f20a1a9c38aa740f41941f86134b7ada8 (patch) | |
tree | 9d5c3e58caaa6b250c475871d0b975ceb0f82057 /src | |
parent | 56bb07bad6fbb73c0f5631a6399bf1ba627c817b (diff) | |
download | sqlite-0fcaf16f20a1a9c38aa740f41941f86134b7ada8.tar.gz sqlite-0fcaf16f20a1a9c38aa740f41941f86134b7ada8.zip |
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this
can happen on some very obscure conditions, as discovered by dbsqlfuzz.
Test case in TH3.
FossilOrigin-Name: 7946c79567b0ccd3a00d12390e99896d7dc11407d0b52bc39338a16a493f56f6
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbe.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vdbe.c b/src/vdbe.c index 4ea508032..38155a170 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -8184,7 +8184,7 @@ case OP_VCheck: { /* out2 */ pTab = pOp->p4.pTab; assert( pTab!=0 ); assert( IsVirtual(pTab) ); - assert( pTab->u.vtab.p!=0 ); + if( pTab->u.vtab.p==0 ) break; pVtab = pTab->u.vtab.p->pVtab; assert( pVtab!=0 ); pModule = pVtab->pModule; |