diff options
author | dan <dan@noemail.net> | 2013-10-03 12:29:38 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2013-10-03 12:29:38 +0000 |
commit | 46539d7cfab6202ed6a6b5de7de5a6256c16f1ba (patch) | |
tree | 4adea647b4b003b296b8c2829ac17ec71506b3c2 /src/trigger.c | |
parent | 582d47d27a2540564bbf0bd060de73d1dd413e35 (diff) | |
download | sqlite-46539d7cfab6202ed6a6b5de7de5a6256c16f1ba.tar.gz sqlite-46539d7cfab6202ed6a6b5de7de5a6256c16f1ba.zip |
Return an error if an attempt is made to create a trigger with an SQL variable embedded within it. If such a variable reference is found within a trigger definition loaded from the sqlite_master table, silently replace it with a NULL.
FossilOrigin-Name: f35f6ae3da77dbdf5f7a4a9927475659fc6e0ca6
Diffstat (limited to 'src/trigger.c')
-rw-r--r-- | src/trigger.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/trigger.c b/src/trigger.c index b901d0767..bc31ba86a 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -291,8 +291,10 @@ void sqlite3FinishTrigger( } nameToken.z = pTrig->zName; nameToken.n = sqlite3Strlen30(nameToken.z); - if( sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken) - && sqlite3FixTriggerStep(&sFix, pTrig->step_list) ){ + if( sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken) && ( + sqlite3FixTriggerStep(&sFix, pTrig->step_list) + || sqlite3FixExpr(&sFix, pTrig->pWhen) + )){ goto triggerfinish_cleanup; } |