From 3ebf00ee3afeff4672a3c67820f0befbe23f09c1 Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Tue, 26 Jan 2021 17:21:06 +0800 Subject: mariadb: upgrade to 10.5.8 Fixes for the following security vulnerabilities: CVE-2020-14812 CVE-2020-14765 CVE-2020-14776 CVE-2020-14789 CVE-2020-28912 (MDEV-24040) Rebase c11_atomics.patch to avoid fuzz warnings and add a patch to fix below build error on musl. /prj/tmp/work/cortexa57-poky-linux-musl/mariadb/10.5.8-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux-musl/../../libexec/aarch64-poky-linux-musl/gcc/aarch64-poky-linux-musl/10.2.0/ld.bfd: /usr/src/debug/mariadb/10.5.8-r0/mariadb-10.5.8/unittest/mysys/stacktrace-t.c:36: undefined reference to `my_safe_print_str' Signed-off-by: Mingli Yu Signed-off-by: Khem Raj (cherry picked from commit 486d0fa33ec6dc41f198445180135ccccb897ce1) Signed-off-by: Armin Kuster --- meta-oe/recipes-dbs/mysql/mariadb-native_10.5.6.bb | 20 ------------ meta-oe/recipes-dbs/mysql/mariadb-native_10.5.8.bb | 20 ++++++++++++ meta-oe/recipes-dbs/mysql/mariadb.inc | 3 +- ...-stacktrace-t.c-make-the-test-conditional.patch | 38 ++++++++++++++++++++++ .../recipes-dbs/mysql/mariadb/c11_atomics.patch | 14 ++++---- meta-oe/recipes-dbs/mysql/mariadb_10.5.6.bb | 27 --------------- meta-oe/recipes-dbs/mysql/mariadb_10.5.8.bb | 27 +++++++++++++++ 7 files changed, 94 insertions(+), 55 deletions(-) delete mode 100644 meta-oe/recipes-dbs/mysql/mariadb-native_10.5.6.bb create mode 100644 meta-oe/recipes-dbs/mysql/mariadb-native_10.5.8.bb create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/0001-stacktrace-t.c-make-the-test-conditional.patch delete mode 100644 meta-oe/recipes-dbs/mysql/mariadb_10.5.6.bb create mode 100644 meta-oe/recipes-dbs/mysql/mariadb_10.5.8.bb diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.6.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.6.bb deleted file mode 100644 index 73b2a0980d..0000000000 --- a/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.6.bb +++ /dev/null @@ -1,20 +0,0 @@ -require mariadb.inc -inherit native - -PROVIDES += "mysql5-native" -DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native" - -RDEPENDS_${PN} = "" -PACKAGES = "" -EXTRA_OEMAKE = "" - -do_install() { - oe_runmake 'DESTDIR=${D}' install - - install -d ${D}${bindir} - install -m 0755 sql/gen_lex_hash ${D}${bindir}/ - install -m 0755 sql/gen_lex_token ${D}${bindir}/ - install -m 0755 extra/comp_err ${D}${bindir}/ - install -m 0755 scripts/comp_sql ${D}${bindir}/ -} - diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.8.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.8.bb new file mode 100644 index 0000000000..73b2a0980d --- /dev/null +++ b/meta-oe/recipes-dbs/mysql/mariadb-native_10.5.8.bb @@ -0,0 +1,20 @@ +require mariadb.inc +inherit native + +PROVIDES += "mysql5-native" +DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native" + +RDEPENDS_${PN} = "" +PACKAGES = "" +EXTRA_OEMAKE = "" + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + install -d ${D}${bindir} + install -m 0755 sql/gen_lex_hash ${D}${bindir}/ + install -m 0755 sql/gen_lex_token ${D}${bindir}/ + install -m 0755 extra/comp_err ${D}${bindir}/ + install -m 0755 scripts/comp_sql ${D}${bindir}/ +} + diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index f6c32270b7..27eede6c30 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -20,8 +20,9 @@ SRC_URI = "https://downloads.mariadb.org/interstitial/${BP}/source/${BP}.tar.gz file://fix-arm-atomic.patch \ file://0001-Fix-library-LZ4-lookup.patch \ file://0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0001-stacktrace-t.c-make-the-test-conditional.patch \ " -SRC_URI[sha256sum] = "ff05dd69e9f6992caf1053242db704f04eda6f9accbcc98b74edfaf6013c45c4" +SRC_URI[sha256sum] = "eb4824f6f2c532cd3fc6a6bce7bf78ea7c6b949f8bdd07656b2c84344e757be8" UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases" diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-stacktrace-t.c-make-the-test-conditional.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-stacktrace-t.c-make-the-test-conditional.patch new file mode 100644 index 0000000000..d8f672d744 --- /dev/null +++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-stacktrace-t.c-make-the-test-conditional.patch @@ -0,0 +1,38 @@ +From 966cbeb309f867ff4ac8e7f4462be4780e421700 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Mon, 25 Jan 2021 19:01:06 -0800 +Subject: [PATCH] stacktrace-t.c: make the test conditional + +Fixes: +/prj/tmp/work/cortexa57-poky-linux-musl/mariadb/10.5.8-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux-musl/../../libexec/aarch64-poky-linux-musl/gcc/aarch64-poky-linux-musl/10.2.0/ld.bfd: /usr/src/debug/mariadb/10.5.8-r0/mariadb-10.5.8/unittest/mysys/stacktrace-t.c:36: undefined reference to `my_safe_print_str' + +Upstream-Status: Submitted [https://jira.mariadb.org/browse/MDEV-24131] + +Signed-off-by: Mingli Yu +--- + unittest/mysys/stacktrace-t.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/unittest/mysys/stacktrace-t.c b/unittest/mysys/stacktrace-t.c +index 8fa0db15b36..d8408f80d76 100644 +--- a/unittest/mysys/stacktrace-t.c ++++ b/unittest/mysys/stacktrace-t.c +@@ -29,6 +29,7 @@ void test_my_safe_print_str() + memcpy(b_stack, "LEGAL", 6); + memcpy(b_bss, "LEGAL", 6); + ++#ifdef HAVE_STACKTRACE + #ifndef __SANITIZE_ADDRESS__ + fprintf(stderr, "\n===== stack =====\n"); + my_safe_print_str(b_stack, 65535); +@@ -48,6 +49,7 @@ void test_my_safe_print_str() + fprintf(stderr, "\n===== (const char*) 1 =====\n"); + my_safe_print_str((const char*)1, 5); + #endif /*__SANITIZE_ADDRESS__*/ ++#endif /*HAVE_STACKTRACE*/ + + free(b_heap); + +-- +2.17.1 + diff --git a/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch b/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch index 36217f9aae..32c9818ab0 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch @@ -17,10 +17,10 @@ Signed-off-by: Mingli Yu 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/configure.cmake b/configure.cmake -index a355214..6ee595f 100644 +index bb3ad43..2ff4f19 100644 --- a/configure.cmake +++ b/configure.cmake -@@ -865,7 +865,25 @@ int main() +@@ -861,7 +861,25 @@ int main() long long int *ptr= &var; return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); }" @@ -48,11 +48,11 @@ index a355214..6ee595f 100644 IF(WITH_VALGRIND) SET(HAVE_valgrind 1) diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt -index 3d8a20e..42f1441 100644 +index 6a3a1ef..e306ae7 100644 --- a/mysys/CMakeLists.txt +++ b/mysys/CMakeLists.txt -@@ -129,6 +129,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY} - ${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO}) +@@ -140,6 +140,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY} + ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO}) DTRACE_INSTRUMENT(mysys) +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) @@ -63,10 +63,10 @@ index 3d8a20e..42f1441 100644 TARGET_LINK_LIBRARIES(mysys bfd) ENDIF(HAVE_BFD_H) diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt -index 616017b..53575f6 100644 +index 4978d01..883a930 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt -@@ -219,6 +219,10 @@ ELSE() +@@ -220,6 +220,10 @@ ELSE() SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL}) ENDIF() diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.5.6.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.5.6.bb deleted file mode 100644 index e6743fe97a..0000000000 --- a/meta-oe/recipes-dbs/mysql/mariadb_10.5.6.bb +++ /dev/null @@ -1,27 +0,0 @@ -require mariadb.inc - -EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1" - -DEPENDS += "mariadb-native bison-native libpcre2 curl openssl ncurses zlib libaio libedit libevent libxml2" - -PROVIDES += "mysql5 libmysqlclient" - -RPROVIDES_${PN} += "mysql5" -RREPLACES_${PN} += "mysql5" -RCONFLICTS_${PN} += "mysql5" - -RPROVIDES_${PN}-dbg += "mysql5-dbg" -RREPLACES_${PN}-dbg += "mysql5-dbg" -RCONFLICTS_${PN}-dbg += "mysql5-dbg" - -RPROVIDES_${PN}-leftovers += "mysql5-leftovers" -RREPLACES_${PN}-leftovers += "mysql5-leftovers" -RCONFLICTS_${PN}-leftovers += "mysql5-leftovers" - -RPROVIDES_${PN}-client += "mysql5-client" -RREPLACES_${PN}-client += "mysql5-client" -RCONFLICTS_${PN}-client += "mysql5-client" - -RPROVIDES_${PN}-server += "mysql5-server" -RREPLACES_${PN}-server += "mysql5-server" -RCONFLICTS_${PN}-server += "mysql5-server" diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.5.8.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.5.8.bb new file mode 100644 index 0000000000..e6743fe97a --- /dev/null +++ b/meta-oe/recipes-dbs/mysql/mariadb_10.5.8.bb @@ -0,0 +1,27 @@ +require mariadb.inc + +EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1" + +DEPENDS += "mariadb-native bison-native libpcre2 curl openssl ncurses zlib libaio libedit libevent libxml2" + +PROVIDES += "mysql5 libmysqlclient" + +RPROVIDES_${PN} += "mysql5" +RREPLACES_${PN} += "mysql5" +RCONFLICTS_${PN} += "mysql5" + +RPROVIDES_${PN}-dbg += "mysql5-dbg" +RREPLACES_${PN}-dbg += "mysql5-dbg" +RCONFLICTS_${PN}-dbg += "mysql5-dbg" + +RPROVIDES_${PN}-leftovers += "mysql5-leftovers" +RREPLACES_${PN}-leftovers += "mysql5-leftovers" +RCONFLICTS_${PN}-leftovers += "mysql5-leftovers" + +RPROVIDES_${PN}-client += "mysql5-client" +RREPLACES_${PN}-client += "mysql5-client" +RCONFLICTS_${PN}-client += "mysql5-client" + +RPROVIDES_${PN}-server += "mysql5-server" +RREPLACES_${PN}-server += "mysql5-server" +RCONFLICTS_${PN}-server += "mysql5-server" -- cgit 1.2.3-korg