mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-11 01:42:22 +03:00
Merge the latest trunk fixes and enhancements into the jsonb branch, and
especially the JSON cache spill UAF fix. FossilOrigin-Name: 9422c24f4a8b290dcae61e50ec81be5b314b22c61a2bca1e194e47da1316b6e6
This commit is contained in:
@@ -4766,6 +4766,7 @@ static void jsonReplaceFunc(
|
||||
}
|
||||
pParse = jsonParseCached(ctx, argv[0], ctx, argc>1);
|
||||
if( pParse==0 ) return;
|
||||
pParse->nJPRef++;
|
||||
for(i=1; i<(u32)argc; i+=2){
|
||||
zPath = (const char*)sqlite3_value_text(argv[i]);
|
||||
pParse->useMod = 1;
|
||||
@@ -4778,6 +4779,7 @@ static void jsonReplaceFunc(
|
||||
jsonReturnNodeAsJson(pParse, pParse->aNode, ctx, 1);
|
||||
replace_err:
|
||||
jsonDebugPrintParse(pParse);
|
||||
jsonParseFree(pParse);
|
||||
}
|
||||
|
||||
|
||||
@@ -4813,6 +4815,7 @@ static void jsonSetFunc(
|
||||
}
|
||||
pParse = jsonParseCached(ctx, argv[0], ctx, argc>1);
|
||||
if( pParse==0 ) return;
|
||||
pParse->nJPRef++;
|
||||
for(i=1; i<(u32)argc; i+=2){
|
||||
zPath = (const char*)sqlite3_value_text(argv[i]);
|
||||
bApnd = 0;
|
||||
@@ -4829,9 +4832,8 @@ static void jsonSetFunc(
|
||||
}
|
||||
jsonDebugPrintParse(pParse);
|
||||
jsonReturnNodeAsJson(pParse, pParse->aNode, ctx, 1);
|
||||
|
||||
jsonSetDone:
|
||||
/* no cleanup required */;
|
||||
jsonParseFree(pParse);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user