From: dan Date: Fri, 22 Jan 2010 15:48:18 +0000 (+0000) Subject: Fix two similar problems in fts3 that meant that an OOM error could cause a memory... X-Git-Tag: version-3.7.2~626 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d3789b98a7a6a4aa28bbd28ca795a386077a7941;p=thirdparty%2Fsqlite.git Fix two similar problems in fts3 that meant that an OOM error could cause a memory leak. FossilOrigin-Name: 701ef64b3dbf45e52043e79e528002bd4b7a21e2 --- diff --git a/ext/fts3/fts3_porter.c b/ext/fts3/fts3_porter.c index 4e68087299..4e30778179 100644 --- a/ext/fts3/fts3_porter.c +++ b/ext/fts3/fts3_porter.c @@ -605,9 +605,11 @@ static int porterNext( if( c->iOffset>iStartOffset ){ int n = c->iOffset-iStartOffset; if( n>c->nAllocated ){ + char *pNew; c->nAllocated = n+20; - c->zToken = sqlite3_realloc(c->zToken, c->nAllocated); - if( c->zToken==NULL ) return SQLITE_NOMEM; + pNew = sqlite3_realloc(c->zToken, c->nAllocated); + if( !pNew ) return SQLITE_NOMEM; + c->zToken = pNew; } porter_stemmer(&z[iStartOffset], n, c->zToken, pnBytes); *pzToken = c->zToken; diff --git a/ext/fts3/fts3_tokenizer1.c b/ext/fts3/fts3_tokenizer1.c index 654e55ddec..36c5a2f33d 100644 --- a/ext/fts3/fts3_tokenizer1.c +++ b/ext/fts3/fts3_tokenizer1.c @@ -182,9 +182,11 @@ static int simpleNext( if( c->iOffset>iStartOffset ){ int i, n = c->iOffset-iStartOffset; if( n>c->nTokenAllocated ){ + char *pNew; c->nTokenAllocated = n+20; - c->pToken = sqlite3_realloc(c->pToken, c->nTokenAllocated); - if( c->pToken==NULL ) return SQLITE_NOMEM; + pNew = sqlite3_realloc(c->pToken, c->nTokenAllocated); + if( !pNew ) return SQLITE_NOMEM; + c->pToken = pNew; } for(i=0; i