diff options
author | drh <drh@noemail.net> | 2003-04-25 17:52:11 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2003-04-25 17:52:11 +0000 |
commit | 85e2096fb60de90ff32830cf7b9a4689370d723e (patch) | |
tree | b92674526394998c76d05def3f9188c2c5aab8ef /src/trigger.c | |
parent | 2e6d11bc07ca73239a49d25fd8313713f6eeb75e (diff) | |
download | sqlite-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.c | 7 |
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); |