const char *zJson /* Input JSON text to be parsed */
){
int i;
- if( zJson==0 ) return 1;
memset(pParse, 0, sizeof(*pParse));
+ if( zJson==0 ) return 1;
pParse->zJson = zJson;
i = jsonParseValue(pParse, 0);
+ if( pParse->oom ) i = -1;
if( i>0 ){
while( isspace(zJson[i]) ) i++;
if( zJson[i] ) i = -1;
u32 *aUp;
assert( pParse->aUp==0 );
aUp = pParse->aUp = sqlite3_malloc( sizeof(u32)*pParse->nNode );
- if( aUp==0 ) return SQLITE_NOMEM;
+ if( aUp==0 ){
+ pParse->oom = 1;
+ return SQLITE_NOMEM;
+ }
jsonParseFillInParentage(pParse, 0, 0);
return SQLITE_OK;
}
p->eType = pNode->eType;
if( p->eType>=JSON_ARRAY ){
pNode->u.iKey = 0;
+ p->iEnd = p->i + pNode->n + 1;
if( !p->bRecursive ) p->i++;
- p->iEnd = p->i + pNode->n;
}else{
p->iEnd = p->i+1;
}
-C Fixes\sto\sjson_each()\sand\sjson_tree().\s\sImproved\sjson_parse()\sdebugging\soutput.
-D 2015-08-23T02:42:30.942
+C Fix\sminor\sglitches\sin\sthe\sjson1.c\sextension,\smostly\shaving\sto\sdo\swith\sOOM\nbehavior.
+D 2015-08-23T20:44:59.358
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in e2218eb228374422969de7b1680eda6864affcef
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F ext/misc/fileio.c d4171c815d6543a9edef8308aab2951413cd8d0f
F ext/misc/fuzzer.c 4c84635c71c26cfa7c2e5848cf49fe2d2cfcd767
F ext/misc/ieee754.c b0362167289170627659e84173f5d2e8fee8566e
-F ext/misc/json1.c 31bc1babd31190203cb86fcdbe21522756f65b12
+F ext/misc/json1.c 4b66d2ce1dc458e214d0f3663a3870e592484230
F ext/misc/nextchar.c 35c8b8baacb96d92abbb34a83a997b797075b342
F ext/misc/percentile.c bcbee3c061b884eccb80e21651daaae8e1e43c63
F ext/misc/regexp.c af92cdaa5058fcec1451e49becc7ba44dba023dc
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 380a97345b446214843a63ccc017d49a52d884da
-R a54dc4e155baa0caa5702a3578af52f1
+P fc1b24f316af07a64672f6edc14ebcff487dffbb
+R f3f5a4cd7433351edd3f5e216e8c6ba5
U drh
-Z b71b5a39d2829e2cd3b83f4646e372f9
+Z 19ea95791c67f4fad1659a43be075b46