aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2023-10-11 17:21:16 +0000
committerdrh <>2023-10-11 17:21:16 +0000
commit7d1c9da62dcde30f42f2a1d59aaf466207f922b7 (patch)
tree5ee20e8c58637d9a30e92602601712ac214ee42c /src
parent86db4555cab9e74f9c141a151af459c0e8069f54 (diff)
downloadsqlite-7d1c9da62dcde30f42f2a1d59aaf466207f922b7.tar.gz
sqlite-7d1c9da62dcde30f42f2a1d59aaf466207f922b7.zip
Fix the use of an uninitialized value that occurs when doing a json_insert()
of a string value that contains embedded U+0000 characters. FossilOrigin-Name: fc5ee9e51ad4556af526a6cefca5ae5a3b1b7affc4edf09832491d6b4f4ba366
Diffstat (limited to 'src')
-rw-r--r--src/json.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/json.c b/src/json.c
index 3d0bba194..688ab32fe 100644
--- a/src/json.c
+++ b/src/json.c
@@ -4756,11 +4756,13 @@ static void jsonReplaceNode(
break;
}
if( sqlite3_value_subtype(pValue)!=JSON_SUBTYPE ){
- char *zCopy = sqlite3DbStrDup(0, z);
+ char *zCopy = sqlite3_malloc64( n+1 );
int k;
if( zCopy ){
+ memcpy(zCopy, z, n);
+ zCopy[n] = 0;
jsonParseAddCleanup(p, sqlite3_free, zCopy);
- }else{
+ }else{
p->oom = 1;
sqlite3_result_error_nomem(pCtx);
}