aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2021-01-29 22:33:05 +0000
committerdrh <>2021-01-29 22:33:05 +0000
commit8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3 (patch)
tree0e4bf322a55e2331c8aa7dc88f99e20d9db79c66 /src
parentd086aa0a480f6fabf0bb4f0952ae84d79d4295f4 (diff)
downloadsqlite-8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3.tar.gz
sqlite-8f4e2e25c4b5bff5e43bca2f9f166ff48311d6a3.zip
Better handling of errors in RETURNING due to corrupt database files.
FossilOrigin-Name: 6aa2a058d136d0b24d94c5cbe1ce447eb435c1a1c7cdce5e435f1548bb3f05e7
Diffstat (limited to 'src')
-rw-r--r--src/build.c1
-rw-r--r--src/trigger.c3
2 files changed, 1 insertions, 3 deletions
diff --git a/src/build.c b/src/build.c
index 74c5319ca..4143221c3 100644
--- a/src/build.c
+++ b/src/build.c
@@ -1254,7 +1254,6 @@ void sqlite3ColumnPropertiesFromName(Table *pTab, Column *pCol){
static void sqlite3DeleteReturning(sqlite3 *db, Returning *pRet){
Hash *pHash;
pHash = &(db->aDb[1].pSchema->trigHash);
- assert( sqlite3HashFind(pHash, RETURNING_TRIGGER)==&pRet->retTrig );
sqlite3HashInsert(pHash, RETURNING_TRIGGER, 0);
sqlite3ExprListDelete(db, pRet->pReturnEL);
sqlite3DbFree(db, pRet);
diff --git a/src/trigger.c b/src/trigger.c
index a20c14197..452005944 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -567,8 +567,7 @@ TriggerStep *sqlite3TriggerDeleteStep(
** Recursively delete a Trigger structure
*/
void sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger){
- if( pTrigger==0 ) return;
- assert( !pTrigger->bReturning );
+ if( pTrigger==0 || pTrigger->bReturning ) return;
sqlite3DeleteTriggerStep(db, pTrigger->step_list);
sqlite3DbFree(db, pTrigger->zName);
sqlite3DbFree(db, pTrigger->table);