]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a faulty JSON assert() added 30 days ago by check-in [7b8ea2298927fd34].
authordrh <>
Mon, 15 Nov 2021 01:45:11 +0000 (01:45 +0000)
committerdrh <>
Mon, 15 Nov 2021 01:45:11 +0000 (01:45 +0000)
dbsqlfuzz f30366e7b02562398a387ddcc681422fd4251190.

FossilOrigin-Name: 0e0c23fcc493a5d6beb6ab9554981bbc36ba1554fea0f8ba78dc41738f4bd1c2

ext/misc/json1.c
manifest
manifest.uuid
test/json104.test

index 0adf710ef0d9b4af52e931c1a5d161a4ee9c851d..7fcd7342a611778b1b747cd86c1d21c65ac9a4af 100644 (file)
@@ -1662,8 +1662,11 @@ static JsonNode *jsonMergePatch(
           if( pNew==0 ) return 0;
           pTarget = &pParse->aNode[iTarget];
           if( pNew!=&pTarget[j+1] ){
-            assert( pTarget[j+1].eU==0 || pTarget[j+1].eU==1 );
+            assert( pTarget[j+1].eU==0
+                 || pTarget[j+1].eU==1
+                 || pTarget[j+1].eU==2 );
             testcase( pTarget[j+1].eU==1 );
+            testcase( pTarget[j+1].eU==2 );
             VVA( pTarget[j+1].eU = 5 );
             pTarget[j+1].u.pPatch = pNew;
             pTarget[j+1].jnFlags |= JNODE_PATCH;
index 1285128aa08ab3a0125bbdd691b8cfb144d3a14f..373bf7cb039b2e6a70a8fecc8c70ee2d8a5c9687 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\shandling\sof\sOOM\swhile\sreallocating\sa\scolumn\sname\sto\sadd\stype\ninformation.\s\sdbsqlfuzz\s5a195b4233649e49e0aa34f1b743ca192d85b198
-D 2021-11-12T14:39:49.682
+C Fix\sa\sfaulty\sJSON\sassert()\sadded\s30\sdays\sago\sby\scheck-in\s[7b8ea2298927fd34].\ndbsqlfuzz\sf30366e7b02562398a387ddcc681422fd4251190.
+D 2021-11-15T01:45:11.575
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -306,7 +306,7 @@ F ext/misc/fileio.c 57fefd0efc535e62bb8b07fa146875171481da81a759bbfbe2fc91bab900
 F ext/misc/fossildelta.c 1240b2d3e52eab1d50c160c7fe1902a9bd210e052dc209200a750bbf885402d5
 F ext/misc/fuzzer.c eae560134f66333e9e1ca4c8ffea75df42056e2ce8456734565dbe1c2a92bf3d
 F ext/misc/ieee754.c 91a5594071143a4ab79c638fe9f059af1db09932faf2e704c3e29216a7d4f511
-F ext/misc/json1.c 1ad9d8f04f60f7a7c99e6a22ecf84d8f9bc0881782bed6c3d3a7bc6bf0213e2d
+F ext/misc/json1.c 89a988f06dcb3da0d0af9fdb2b09892452ad12dfd8f432600ee6437a6dcac310
 F ext/misc/memstat.c 3017a0832c645c0f8c773435620d663855f04690172316bd127270d1a7523d4d
 F ext/misc/memtrace.c 7c0d115d2ef716ad0ba632c91e05bd119cb16c1aedf3bec9f06196ead2d5537b
 F ext/misc/memvfs.c 7dffa8cc89c7f2d73da4bd4ccea1bcbd2bd283e3bb4cea398df7c372a197291b
@@ -1147,7 +1147,7 @@ F test/jrnlmode3.test 556b447a05be0e0963f4311e95ab1632b11c9eaa
 F test/json101.test bb71538005f2d9e18620bdd3b76839a93ca0be61903eb8d751a64e78cf99b8fb
 F test/json102.test eeb54efa221e50b74a2d6fb9259963b48d7414dca3ce2fdfdeed45cb28487bc1
 F test/json103.test aff6b7a4c17d5a20b487a7bc1a274bfdc63b829413bdfb83bedac42ec7f67e3b
-F test/json104.test 317f4ec4b2d87afbba4d2460cf5be297aea76f2285eb618d276dbcd40a50950f
+F test/json104.test 2cb7ff2cca2c8214d3e5260eeb9ce45faec0926f68b3e40c1aaa6ca247284144
 F test/json105.test 45f7d6a9a54c85f8a9589b68d3e7a1f42d02f2359911a8cdbad1f9988f571173
 F test/keyword1.test 37ef6bba5d2ed5b07ecdd6810571de2956599dff
 F test/kvtest.c feb4358fb022da8ebd098c45811f2f6507688bb6c43aa72b3e840df19026317b
@@ -1932,7 +1932,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 150b5be5d5771485f521e3a58312596ecdcd35f3a0ae9d42d88bb99348a197c4
-R 02a5ea84da0b0ec1dc829fdadfdaad66
+P 5995dd4de4997c43b43befc1281ef6378f33f781134c7f368299d64db2344f1d
+R e485cb8d82384b30dcd2186c506d1700
 U drh
-Z f7e0f9ca9813d06efb398d97a353f90e
+Z 311485b1fa0a63f2008cf2b78c6fc705
index a74c668dd0ebbb1323071692cd6ea2ab646c51e4..1e7bde732954eff7e575b25026bda8d76370da63 100644 (file)
@@ -1 +1 @@
-5995dd4de4997c43b43befc1281ef6378f33f781134c7f368299d64db2344f1d
\ No newline at end of file
+0e0c23fcc493a5d6beb6ab9554981bbc36ba1554fea0f8ba78dc41738f4bd1c2
\ No newline at end of file
index e56e7edeffcfbb41467eaa6839b73c3d73fb04fc..8d95e60140d0ae19fa7a4ccb1fef86825c08ee9d 100644 (file)
@@ -125,6 +125,9 @@ do_execsql_test json104-313 {
 do_execsql_test json104-314 {
   SELECT json_patch('{}','{"a":{"bb":{"ccc":null}}}');
 } {{{"a":{"bb":{}}}}}
+do_execsql_test json104-320 {
+  SELECT json_patch('{"x":{"one":1}}','{"x":{"two":2},"x":"three"}');
+} {{{"x":"three"}}}
 
 #-------------------------------------------------------------------------