summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-01-19 16:05:14 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2023-01-19 16:05:14 +0200
commitf364f3a8918c199017062e256e243aabe1c61f99 (patch)
tree779a1e6dc863500f7b5d3ccdea270a4962172ccb
parentfa2885bec36345844842dc1ef14087b8d19eb3c4 (diff)
parenta01abad6193a39a9cdaa2b36b2a40be1759be0ce (diff)
downloadmariadb-git-bb-10.6-MDEV-29835.tar.gz
-rw-r--r--cmake/pcre.cmake4
-rw-r--r--extra/wolfssl/CMakeLists.txt2
m---------extra/wolfssl/wolfssl0
-rw-r--r--mysql-test/main/func_json.result12
-rw-r--r--mysql-test/main/func_json.test12
-rw-r--r--sql/item_jsonfunc.cc2
6 files changed, 29 insertions, 3 deletions
diff --git a/cmake/pcre.cmake b/cmake/pcre.cmake
index 0ac834f44a6..65dc2ae28f6 100644
--- a/cmake/pcre.cmake
+++ b/cmake/pcre.cmake
@@ -54,8 +54,8 @@ MACRO(BUNDLE_PCRE2)
ExternalProject_Add(
pcre2
PREFIX "${dir}"
- URL "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.40/pcre2-10.40.zip"
- URL_MD5 798698846982ce171d881ed0d7535c2a
+ URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.zip"
+ URL_MD5 fe90992fbfb03f854bd9f344074f49eb
INSTALL_COMMAND ""
CMAKE_ARGS
"-DCMAKE_WARN_DEPRECATED=FALSE"
diff --git a/extra/wolfssl/CMakeLists.txt b/extra/wolfssl/CMakeLists.txt
index 1672f82fc6d..5f446663dc8 100644
--- a/extra/wolfssl/CMakeLists.txt
+++ b/extra/wolfssl/CMakeLists.txt
@@ -157,6 +157,8 @@ IF(WOLFSSL_X86_64_BUILD)
${WOLFCRYPT_SRCDIR}/sha512_asm.S
${WOLFCRYPT_SRCDIR}/sha256_asm.S)
ADD_DEFINITIONS(-maes -msse4.2 -mpclmul)
+ # WolfSSL 5.5.4 bug - user_settings.h not included into aes_asm.S
+ SET_PROPERTY(SOURCE ${WOLFCRYPT_SRCDIR}/aes_asm.S APPEND PROPERTY COMPILE_OPTIONS "-DWOLFSSL_X86_64_BUILD")
ENDIF()
ENDIF()
diff --git a/extra/wolfssl/wolfssl b/extra/wolfssl/wolfssl
-Subproject f1e2165c591f074feb47872a8ff712713ec411e
+Subproject 4fbd4fd36a21efd9d1a7e17aba390e91c78693b
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result
index 3e92ef272e4..45a75ab082c 100644
--- a/mysql-test/main/func_json.result
+++ b/mysql-test/main/func_json.result
@@ -1611,6 +1611,18 @@ SELECT json_object('a', coalesce(json_object('b', 'c')));
json_object('a', coalesce(json_object('b', 'c')))
{"a": {"b": "c"}}
#
+# MDEV-26392: Crash with json_get_path_next and 10.5.12
+#
+CREATE TABLE arrNestTest (
+id VARCHAR(80) AS (JSON_COMPACT(JSON_EXTRACT(doc, "$._id"))) UNIQUE KEY,
+doc JSON,
+CONSTRAINT id_not_null CHECK(id IS NOT NULL));
+INSERT INTO test.arrNestTest (doc) VALUES ('{ "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
+SELECT * FROM arrNestTest;
+id doc
+{"$oid":"611c0a463b150154132f6636"} { "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }
+DROP TABLE arrNestTest;
+#
# MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
#
CREATE TABLE t (a VARCHAR(8));
diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test
index 985a330108e..cbc6156a8c7 100644
--- a/mysql-test/main/func_json.test
+++ b/mysql-test/main/func_json.test
@@ -1054,6 +1054,18 @@ DROP TABLE t2;
SELECT json_object('a', if(1, json_object('b', 'c'), json_object('e', 'f')));
SELECT json_object('a', coalesce(json_object('b', 'c')));
+--echo #
+--echo # MDEV-26392: Crash with json_get_path_next and 10.5.12
+--echo #
+
+CREATE TABLE arrNestTest (
+ id VARCHAR(80) AS (JSON_COMPACT(JSON_EXTRACT(doc, "$._id"))) UNIQUE KEY,
+ doc JSON,
+ CONSTRAINT id_not_null CHECK(id IS NOT NULL));
+
+INSERT INTO test.arrNestTest (doc) VALUES ('{ "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
+SELECT * FROM arrNestTest;
+DROP TABLE arrNestTest;
--echo #
--echo # MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc
index 2ed387ac8cc..34b146c942b 100644
--- a/sql/item_jsonfunc.cc
+++ b/sql/item_jsonfunc.cc
@@ -1004,7 +1004,7 @@ String *Item_func_json_extract::read_json(String *str,
if (!possible_multiple_values)
{
/* Loop to the end of the JSON just to make sure it's valid. */
- while (json_get_path_next(&je, &p) == 0) {}
+ while (json_scan_next(&je) == 0) {}
break;
}
}