aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2021-11-12 14:39:49 +0000
committerdrh <>2021-11-12 14:39:49 +0000
commit146121f5cb5ca97da56c1bf48bc22ba7629409c9 (patch)
tree151bc248dab24612dd749d7a0e11a0c56d345c64 /src
parent9135ebb7db2fd24819c4d76ea7a6e9fedc78489e (diff)
downloadsqlite-146121f5cb5ca97da56c1bf48bc22ba7629409c9.tar.gz
sqlite-146121f5cb5ca97da56c1bf48bc22ba7629409c9.zip
Improved handling of OOM while reallocating a column name to add type
information. dbsqlfuzz 5a195b4233649e49e0aa34f1b743ca192d85b198 FossilOrigin-Name: 5995dd4de4997c43b43befc1281ef6378f33f781134c7f368299d64db2344f1d
Diffstat (limited to 'src')
-rw-r--r--src/expr.c3
-rw-r--r--src/select.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index 62d2691bc..126a870f9 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -2803,7 +2803,8 @@ int sqlite3FindInIndex(
CollSeq *pReq = sqlite3BinaryCompareCollSeq(pParse, pLhs, pRhs);
int j;
- assert( pReq!=0 || pRhs->iColumn==XN_ROWID || pParse->nErr );
+ assert( pReq!=0 || pRhs->iColumn==XN_ROWID
+ || pParse->nErr || db->mallocFailed );
for(j=0; j<nExpr; j++){
if( pIdx->aiColumn[j]!=pRhs->iColumn ) continue;
assert( pIdx->azColl[j] );
diff --git a/src/select.c b/src/select.c
index ebb746467..5cf6ebf1e 100644
--- a/src/select.c
+++ b/src/select.c
@@ -2209,6 +2209,9 @@ void sqlite3SelectAddColumnTypeAndCollation(
if( pCol->zCnName ){
memcpy(&pCol->zCnName[n+1], zType, m+1);
pCol->colFlags |= COLFLAG_HASTYPE;
+ }else{
+ testcase( pCol->colFlags & COLFLAG_HASTYPE );
+ pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL);
}
}
if( pCol->affinity<=SQLITE_AFF_NONE ) pCol->affinity = aff;