diff options
author | drh <drh@noemail.net> | 2015-08-22 03:05:54 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-08-22 03:05:54 +0000 |
commit | be9474ee05fd36fa5925847d9aa6cac9a06f9ad3 (patch) | |
tree | fb3bfc99b659dff7b8481b373b9e81a2e2af0093 /ext/misc/json1.c | |
parent | 38978dd4edf28da1b9c8f4003caecfafab31d206 (diff) | |
download | sqlite-be9474ee05fd36fa5925847d9aa6cac9a06f9ad3.tar.gz sqlite-be9474ee05fd36fa5925847d9aa6cac9a06f9ad3.zip |
Fix a couple instances of OOM handling in the json extension.
FossilOrigin-Name: 213a6c5ccbcfe4495d45e3608e99a6398751aeed
Diffstat (limited to 'ext/misc/json1.c')
-rw-r--r-- | ext/misc/json1.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/misc/json1.c b/ext/misc/json1.c index 66173482c..ea456bfea 100644 --- a/ext/misc/json1.c +++ b/ext/misc/json1.c @@ -587,6 +587,7 @@ static int jsonParseValue(JsonParse *pParse, u32 i){ if( x==(-2) && pParse->nNode==iThis+1 ) return j+1; return -1; } + if( pParse->oom ) return -1; if( pParse->aNode[pParse->nNode-1].eType!=JSON_STRING ) return -1; j = x; while( isspace(pParse->zJson[j]) ){ j++; } @@ -639,7 +640,7 @@ static int jsonParseValue(JsonParse *pParse, u32 i){ j++; } jsonParseAddNode(pParse, JSON_STRING, j+1-i, &pParse->zJson[i]); - pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; + if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; return j+1; }else if( c=='n' && strncmp(pParse->zJson+i,"null",4)==0 |