aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/json1.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-07-31 12:13:58 +0000
committerdrh <drh@noemail.net>2019-07-31 12:13:58 +0000
commit7e35e81dcbf150df7e3c26d59c1c2dddf0f147ab (patch)
tree2e84a5aed7d27895dda602ff9bd53e41c85f8fa9 /ext/misc/json1.c
parent9c3bb59f76bd1cc196e6a5609017555b228eb64c (diff)
downloadsqlite-7e35e81dcbf150df7e3c26d59c1c2dddf0f147ab.tar.gz
sqlite-7e35e81dcbf150df7e3c26d59c1c2dddf0f147ab.zip
Do not allow the json_set() function to overwrite the same element more than
once. FossilOrigin-Name: f237f60e4fa9171dfe9a77c8637595c2701e971034d41bd6018944e8b2b27a6f
Diffstat (limited to 'ext/misc/json1.c')
-rw-r--r--ext/misc/json1.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ext/misc/json1.c b/ext/misc/json1.c
index 0bb4e1cee..3a9d10331 100644
--- a/ext/misc/json1.c
+++ b/ext/misc/json1.c
@@ -1083,6 +1083,7 @@ static JsonNode *jsonLookupStep(
const char *zKey;
JsonNode *pRoot = &pParse->aNode[iRoot];
if( zPath[0]==0 ) return pRoot;
+ if( pRoot->jnFlags & JNODE_REPLACE ) return 0;
if( zPath[0]=='.' ){
if( pRoot->eType!=JSON_OBJECT ) return 0;
zPath++;