diff options
author | drh <> | 2024-02-13 17:11:19 +0000 |
---|---|---|
committer | drh <> | 2024-02-13 17:11:19 +0000 |
commit | 54eb54c7de06e050023d97dc521e77308bf3df64 (patch) | |
tree | 402e2a1d313ede63a4855fad62a8771b9027b6bb /src | |
parent | 8e821c251d27816352f3330e9992dcc3b5dceeaa (diff) | |
download | sqlite-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.c | 4 |
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{ |