aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2024-02-13 17:11:19 +0000
committerdrh <>2024-02-13 17:11:19 +0000
commit54eb54c7de06e050023d97dc521e77308bf3df64 (patch)
tree402e2a1d313ede63a4855fad62a8771b9027b6bb /src
parent8e821c251d27816352f3330e9992dcc3b5dceeaa (diff)
downloadsqlite-54eb54c7de06e050023d97dc521e77308bf3df64.tar.gz
sqlite-54eb54c7de06e050023d97dc521e77308bf3df64.zip
Changes to vtabCallConstructor() to avoid a harmless static analyzer warning
and to help prove that the UAF reported by [forum:/forumpost/cafbe582e8|forum post cafbe582e8] is a false-positive. FossilOrigin-Name: 4892440b93306e5a245f18c0d3d295d851e6712260e420016c0d70e12abf8901
Diffstat (limited to 'src')
-rw-r--r--src/vtab.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vtab.c b/src/vtab.c
index f83921678..67226c63c 100644
--- a/src/vtab.c
+++ b/src/vtab.c
@@ -611,6 +611,8 @@ static int vtabCallConstructor(
db->pVtabCtx = &sCtx;
pTab->nTabRef++;
rc = xConstruct(db, pMod->pAux, nArg, azArg, &pVTable->pVtab, &zErr);
+ assert( pTab!=0 );
+ assert( pTab->nTabRef>1 || rc!=SQLITE_OK );
sqlite3DeleteTable(db, pTab);
db->pVtabCtx = sCtx.pPrior;
if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
@@ -633,7 +635,7 @@ static int vtabCallConstructor(
pVTable->nRef = 1;
if( sCtx.bDeclared==0 ){
const char *zFormat = "vtable constructor did not declare schema: %s";
- *pzErr = sqlite3MPrintf(db, zFormat, pTab->zName);
+ *pzErr = sqlite3MPrintf(db, zFormat, zModuleName);
sqlite3VtabUnlock(pVTable);
rc = SQLITE_ERROR;
}else{