diff options
author | drh <> | 2023-03-20 00:53:56 +0000 |
---|---|---|
committer | drh <> | 2023-03-20 00:53:56 +0000 |
commit | 715963f1ba3c173a7145858e5ee2461fc8431660 (patch) | |
tree | b65abb79dd0142306ea0f38ddf75fe95feae8b3a /src/expr.c | |
parent | 0d53e8ed543e9501026b895b8a02a7822d333b99 (diff) | |
download | sqlite-715963f1ba3c173a7145858e5ee2461fc8431660.tar.gz sqlite-715963f1ba3c173a7145858e5ee2461fc8431660.zip |
Expression errors in generated columns should not generate non-negative
sqlite3_error_offset() returns. Second of two defenses against
[33aa4c0de8a62e33].
FossilOrigin-Name: 2adb4e0dda471ffc9b2a5cbad01b6c2bc6091b7526a8c8b19944cb2d4a5111e7
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c index 223ebf1cb..ac6f53872 100644 --- a/src/expr.c +++ b/src/expr.c @@ -3841,6 +3841,7 @@ void sqlite3ExprCodeGeneratedColumn( Vdbe *v = pParse->pVdbe; assert( v!=0 ); assert( pParse->iSelfTab!=0 ); + if( pParse->nErr ) return; if( pParse->iSelfTab>0 ){ iAddr = sqlite3VdbeAddOp3(v, OP_IfNullRow, pParse->iSelfTab-1, 0, regOut); }else{ @@ -3851,6 +3852,7 @@ void sqlite3ExprCodeGeneratedColumn( sqlite3VdbeAddOp4(v, OP_Affinity, regOut, 1, 0, &pCol->affinity, 1); } if( iAddr ) sqlite3VdbeJumpHere(v, iAddr); + pParse->db->errByteOffset = -1; } #endif /* SQLITE_OMIT_GENERATED_COLUMNS */ |