mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-27 20:41:58 +03:00
Change json_group_object() so that it ignores entries where the label
is NULL. [forum:/forumpost/e5bd251fb5|Forum post e5bd251fb5]. FossilOrigin-Name: 28215d131cd970a2756338579fb6b6091ab155be8f419505cae8ac918956165c
This commit is contained in:
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
|||||||
C vtablog.c\sdoc\sfixes\sreported\sin\s[forum:416d1e37b2|forum\spost\s416d1e37b2].
|
C Change\sjson_group_object()\sso\sthat\sit\signores\sentries\swhere\sthe\slabel\nis\sNULL.\s\s[forum:/forumpost/e5bd251fb5|Forum\spost\se5bd251fb5].
|
||||||
D 2025-05-24T16:01:50.573
|
D 2025-05-24T20:20:20.426
|
||||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
@ -746,7 +746,7 @@ F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
|
|||||||
F src/hwtime.h f9c2dfb84dce7acf95ce6d289e46f5f9d3d1afd328e53da8f8e9008e3b3caae6
|
F src/hwtime.h f9c2dfb84dce7acf95ce6d289e46f5f9d3d1afd328e53da8f8e9008e3b3caae6
|
||||||
F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
|
F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
|
||||||
F src/insert.c d05934dfab2c5c0c480fc6fd2038f11215661de08ea6ff38d2563216bd555c1b
|
F src/insert.c d05934dfab2c5c0c480fc6fd2038f11215661de08ea6ff38d2563216bd555c1b
|
||||||
F src/json.c 2406a6b0dd849ee0fd107d5cfef9fec2cdc2fbe631ece3183c31d6f85e0ec988
|
F src/json.c d34969ecb9555f33fc0b2227628189a9a4e20dda5df5d173db9918a014aa7ad1
|
||||||
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
|
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
|
||||||
F src/loadext.c d7edd8e671237539d795d30daaf888908a2c82e99bade4c78f3be021e8b7d655
|
F src/loadext.c d7edd8e671237539d795d30daaf888908a2c82e99bade4c78f3be021e8b7d655
|
||||||
F src/main.c 07f78d917ffcdf327982840cfd8e855fd000527a2ea5ace372ce4febcbd0bf97
|
F src/main.c 07f78d917ffcdf327982840cfd8e855fd000527a2ea5ace372ce4febcbd0bf97
|
||||||
@ -1388,7 +1388,7 @@ F test/json/json-generator.tcl dc0dd0f393800c98658fc4c47eaa6af29d4e17527380cd286
|
|||||||
F test/json/json-q1.txt 65f9d1cdcc4cffa9823fb73ed936aae5658700cd001fde448f68bfb91c807307
|
F test/json/json-q1.txt 65f9d1cdcc4cffa9823fb73ed936aae5658700cd001fde448f68bfb91c807307
|
||||||
F test/json/json-speed-check.sh 7d5898808ce7542762318306ae6075a30f5e7ee115c4a409f487e123afe91d88 x
|
F test/json/json-speed-check.sh 7d5898808ce7542762318306ae6075a30f5e7ee115c4a409f487e123afe91d88 x
|
||||||
F test/json/jsonb-q1.txt 1e180fe6491efab307e318b22879e3a736ac9a96539bbde7911a13ee5b33abc7
|
F test/json/jsonb-q1.txt 1e180fe6491efab307e318b22879e3a736ac9a96539bbde7911a13ee5b33abc7
|
||||||
F test/json101.test 11024e20fe298f7214878947b8f85a2dbe593593e04b4173c14a5857afbb986c
|
F test/json101.test 8237a484c256965eab1678fd950a32ac56325bb7d0dadbd095a46b0ddd95d62b
|
||||||
F test/json102.test 9b2e5ada10845ff84853b3feaae2ce51ce7145ae458f74c6a6cecc6ef6ee3ae1
|
F test/json102.test 9b2e5ada10845ff84853b3feaae2ce51ce7145ae458f74c6a6cecc6ef6ee3ae1
|
||||||
F test/json103.test 355746a6b66aa438f214b4fae454b13068fad2444b5f693e0d538ad1c059b264
|
F test/json103.test 355746a6b66aa438f214b4fae454b13068fad2444b5f693e0d538ad1c059b264
|
||||||
F test/json104.test 1b844a70cddcfa2e4cd81a5db0657b2e61e7f00868310f24f56a9ba0114348c1
|
F test/json104.test 1b844a70cddcfa2e4cd81a5db0657b2e61e7f00868310f24f56a9ba0114348c1
|
||||||
@ -2207,8 +2207,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
|
|||||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||||
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P c266e38c5b61f47b920027aad418b641ab32cb8a3360dbcfd9f9f29b14fd5375
|
P 5d25f62bcd2d754134f608162778b49b0e71c29bd5a6f2461a07caca3d76c7de
|
||||||
R 08db1ead98789581c0a87806fad4110e
|
R d987892ec7c9946323ec5c2a460ee77b
|
||||||
U stephan
|
U drh
|
||||||
Z 2ef73c70805dee244a37cb8f5ef42d20
|
Z 3fb038b427963a4fec4a7c712363d8e1
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
5d25f62bcd2d754134f608162778b49b0e71c29bd5a6f2461a07caca3d76c7de
|
28215d131cd970a2756338579fb6b6091ab155be8f419505cae8ac918956165c
|
||||||
|
14
src/json.c
14
src/json.c
@ -4850,18 +4850,20 @@ static void jsonObjectStep(
|
|||||||
UNUSED_PARAMETER(argc);
|
UNUSED_PARAMETER(argc);
|
||||||
pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr));
|
pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr));
|
||||||
if( pStr ){
|
if( pStr ){
|
||||||
|
z = (const char*)sqlite3_value_text(argv[0]);
|
||||||
|
n = sqlite3Strlen30(z);
|
||||||
if( pStr->zBuf==0 ){
|
if( pStr->zBuf==0 ){
|
||||||
jsonStringInit(pStr, ctx);
|
jsonStringInit(pStr, ctx);
|
||||||
jsonAppendChar(pStr, '{');
|
jsonAppendChar(pStr, '{');
|
||||||
}else if( pStr->nUsed>1 ){
|
}else if( pStr->nUsed>1 && z!=0 ){
|
||||||
jsonAppendChar(pStr, ',');
|
jsonAppendChar(pStr, ',');
|
||||||
}
|
}
|
||||||
pStr->pCtx = ctx;
|
pStr->pCtx = ctx;
|
||||||
z = (const char*)sqlite3_value_text(argv[0]);
|
if( z!=0 ){
|
||||||
n = sqlite3Strlen30(z);
|
jsonAppendString(pStr, z, n);
|
||||||
jsonAppendString(pStr, z, n);
|
jsonAppendChar(pStr, ':');
|
||||||
jsonAppendChar(pStr, ':');
|
jsonAppendSqlValue(pStr, argv[1]);
|
||||||
jsonAppendSqlValue(pStr, argv[1]);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){
|
static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){
|
||||||
|
@ -1113,7 +1113,7 @@ do_execsql_test json101-21.26 {
|
|||||||
do_execsql_test json101-21.27 {
|
do_execsql_test json101-21.27 {
|
||||||
WITH c(x,y) AS (VALUES('a',1),('b',2.0),('c',NULL),(NULL,'three'),('e','four'))
|
WITH c(x,y) AS (VALUES('a',1),('b',2.0),('c',NULL),(NULL,'three'),('e','four'))
|
||||||
SELECT json_group_object(x,y) FROM c;
|
SELECT json_group_object(x,y) FROM c;
|
||||||
} {{{"a":1,"b":2.0,"c":null,:"three","e":"four"}}}
|
} {{{"a":1,"b":2.0,"c":null,"e":"four"}}}
|
||||||
|
|
||||||
# 2023-10-09 https://sqlite.org/forum/forumpost/b25edc1d46
|
# 2023-10-09 https://sqlite.org/forum/forumpost/b25edc1d46
|
||||||
# UAF due to JSON cache overflow
|
# UAF due to JSON cache overflow
|
||||||
|
Reference in New Issue
Block a user