mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
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
This commit is contained in:
@@ -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{
|
||||
|
Reference in New Issue
Block a user