aboutsummaryrefslogtreecommitdiff
path: root/src/trigger.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2003-04-25 17:52:11 +0000
committerdrh <drh@noemail.net>2003-04-25 17:52:11 +0000
commit85e2096fb60de90ff32830cf7b9a4689370d723e (patch)
treeb92674526394998c76d05def3f9188c2c5aab8ef /src/trigger.c
parent2e6d11bc07ca73239a49d25fd8313713f6eeb75e (diff)
downloadsqlite-85e2096fb60de90ff32830cf7b9a4689370d723e.tar.gz
sqlite-85e2096fb60de90ff32830cf7b9a4689370d723e.zip
Report the correct authorization context in the authorization callback
when coding an INSTEAD OF trigger on an update or delete. (CVS 936) FossilOrigin-Name: 67746833fc8de3afff80db413bd63a362bb28218
Diffstat (limited to 'src/trigger.c')
-rw-r--r--src/trigger.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/trigger.c b/src/trigger.c
index 0abe7ee0d..b07b8c5a8 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -661,7 +661,7 @@ int sqliteCodeRowTrigger(
int endTrigger;
SrcList dummyTablist;
Expr * whenExpr;
- const char *zSavedAuthContext;
+ AuthContext sContext;
dummyTablist.nSrc = 0;
@@ -673,8 +673,7 @@ int sqliteCodeRowTrigger(
pTriggerStack->pNext = pParse->trigStack;
pTriggerStack->ignoreJump = ignoreJump;
pParse->trigStack = pTriggerStack;
- zSavedAuthContext = pParse->zAuthContext;
- pParse->zAuthContext = pTrigger->name;
+ sqliteAuthContextPush(pParse, &sContext, pTrigger->name);
/* code the WHEN clause */
endTrigger = sqliteVdbeMakeLabel(pParse->pVdbe);
@@ -692,7 +691,7 @@ int sqliteCodeRowTrigger(
/* Pop the entry off the trigger stack */
pParse->trigStack = pParse->trigStack->pNext;
- pParse->zAuthContext = zSavedAuthContext;
+ sqliteAuthContextPop(&sContext);
sqliteFree(pTriggerStack);
sqliteVdbeResolveLabel(pParse->pVdbe, endTrigger);