1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program.

FossilOrigin-Name: 64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a
This commit is contained in:
dan
2019-01-18 16:06:18 +00:00
parent 3cb79202f8
commit 0e14e98706
4 changed files with 38 additions and 10 deletions

View File

@@ -1081,7 +1081,6 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
Trigger *pNew = pParse->pNewTrigger;
TriggerStep *pStep;
NameContext sNC;
SrcList sSrc;
int rc = SQLITE_OK;
memset(&sNC, 0, sizeof(sNC));
@@ -1112,6 +1111,7 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
if( pTarget==0 ){
rc = SQLITE_ERROR;
}else if( SQLITE_OK==(rc = sqlite3ViewGetColumnNames(pParse, pTarget)) ){
SrcList sSrc;
memset(&sSrc, 0, sizeof(sSrc));
sSrc.nSrc = 1;
sSrc.a[0].zName = pStep->zTarget;
@@ -1143,6 +1143,7 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
}
sNC.ncFlags = 0;
}
sNC.pSrcList = 0;
}
}
}