aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/json1.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-08-22 03:05:54 +0000
committerdrh <drh@noemail.net>2015-08-22 03:05:54 +0000
commitbe9474ee05fd36fa5925847d9aa6cac9a06f9ad3 (patch)
treefb3bfc99b659dff7b8481b373b9e81a2e2af0093 /ext/misc/json1.c
parent38978dd4edf28da1b9c8f4003caecfafab31d206 (diff)
downloadsqlite-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.c3
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