diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch deleted file mode 100644 index 72e3b9802d..0000000000 --- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch +++ /dev/null @@ -1,34 +0,0 @@ -From b6149e203f919c899fefc702a17fbb78bdec3700 Mon Sep 17 00:00:00 2001 -From: Le Van Khanh -Date: Thu, 9 Feb 2023 03:17:13 -0500 -Subject: [PATCH] Fix memory leak - -Free the ecuid_conf in case of memory alllocated - -CVE: CVE-2023-26257 - -Upstream-Status: Backport -[https://github.com/COVESA/dlt-daemon/pull/441/commits/b6149e203f919c899fefc702a17fbb78bdec3700] - -Signed-off-by: Le Van Khanh - -Signed-off-by: Yogita Urade ---- - src/console/dlt-control-common.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c -index abcaf92..64951c1 100644 ---- a/src/console/dlt-control-common.c -+++ b/src/console/dlt-control-common.c -@@ -124,6 +124,8 @@ void set_ecuid(char *ecuid) - if (dlt_parse_config_param("ECUId", &ecuid_conf) == 0) { - memset(local_ecuid, 0, DLT_CTRL_ECUID_LEN); - strncpy(local_ecuid, ecuid_conf, DLT_CTRL_ECUID_LEN); -+ if (ecuid_conf !=NULL) -+ free(ecuid_conf); - local_ecuid[DLT_CTRL_ECUID_LEN - 1] = '\0'; - } - else { --- -2.34.1 diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch deleted file mode 100644 index 7b40b7a67e..0000000000 --- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch +++ /dev/null @@ -1,45 +0,0 @@ -From dd2d42a7f877d292f86e421dd9651f4b7c2abf18 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 19 Apr 2022 14:57:58 -0700 -Subject: [PATCH] cmake: Link with libatomic on rv32/rv64 - -Use of needs to link in libatomic on riscv -Fixes - -undefined reference to `__atomic_exchange_1' - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - src/lib/CMakeLists.txt | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt -index 3293376..65018be 100644 ---- a/src/lib/CMakeLists.txt -+++ b/src/lib/CMakeLists.txt -@@ -37,6 +37,12 @@ else() - set(SOCKET_LIBRARY socket) - endif() - -+if(CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv32") -+ set(ATOMIC_LIBRARY atomic) -+else() -+ set(ATOMIC_LIBRARY "") -+endif() -+ - if(HAVE_FUNC_PTHREAD_SETNAME_NP) - add_definitions(-DDLT_USE_PTHREAD_SETNAME_NP) - message(STATUS "Using pthread_setname_np API to set thread name") -@@ -44,7 +50,7 @@ else() - message(STATUS "pthread_setname_np API not available on this platform") - endif() - --target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} Threads::Threads) -+target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} ${ATOMIC_LIBRARY} Threads::Threads) - - target_include_directories(dlt - PUBLIC --- -2.36.0 - diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch deleted file mode 100644 index e7e6cb3b1a..0000000000 --- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 94378458d653b1edca86435026909592cbe5e793 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Fri, 19 Aug 2022 11:12:17 +0800 -Subject: [PATCH] dlt-system: Fix buffer overflow detection on 32bit targets - -On 32bit target, dlt-system will termiated with error: -dlt-system: *** buffer overflow detected ***: terminated - -Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/398] - -Signed-off-by: Changqing Li ---- - src/system/dlt-system-watchdog.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/system/dlt-system-watchdog.c b/src/system/dlt-system-watchdog.c -index a2b01de..c0eaa12 100644 ---- a/src/system/dlt-system-watchdog.c -+++ b/src/system/dlt-system-watchdog.c -@@ -109,8 +109,8 @@ int register_watchdog_fd(struct pollfd *pollfd, int fdcnt) - - void watchdog_fd_handler(int fd) - { -- long int timersElapsed = 0; -- int r = read(fd, &timersElapsed, 8); // only needed to reset fd event -+ uint64_t timersElapsed = 0ULL; -+ int r = read(fd, &timersElapsed, 8U); // only needed to reset fd event - if(r < 0) - DLT_LOG(watchdogContext, DLT_LOG_ERROR, DLT_STRING("Could not reset systemd watchdog. Exit with: "), - DLT_STRING(strerror(r))); -@@ -120,4 +120,4 @@ void watchdog_fd_handler(int fd) - - DLT_LOG(watchdogContext, DLT_LOG_DEBUG, DLT_STRING("systemd watchdog waited periodic\n")); - } --#endif -\ No newline at end of file -+#endif --- -2.25.1 - diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch new file mode 100644 index 0000000000..a3f2b2f9e5 --- /dev/null +++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch @@ -0,0 +1,47 @@ +From 95476de802585629c6d89707a9247bbb0c70f6c9 Mon Sep 17 00:00:00 2001 +From: Gianfranco Costamagna +Date: Fri, 28 Apr 2023 22:39:57 +0200 +Subject: [PATCH] Update gtest_dlt_daemon_multiple_files_logging.cpp +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix build error due to dlt_vlog not having the correct format string with security build flags enabled + +[ 88%] Building CXX object tests/CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o +cd dlt-daemon-2.18.9/obj-x86_64-linux-gnu/tests && /usr/bin/c++ -DCONFIGURATION_FILES_DIR=\"/etc\" -DDLT_DAEMON_USE_FIFO_IPC -DDLT_LIB_USE_FIFO_IPC -DDLT_NETWORK_TRACE_ENABLE -DDLT_SYSTEMD_ENABLE -DDLT_SYSTEMD_JOURNAL_ENABLE -DDLT_UNIT_TESTS -DDLT_USER_IPC_PATH=\"/tmp\" -DDLT_USE_IPv6 -DEXTENDED_FILTERING -D_GNU_SOURCE -Idlt-daemon-2.18.9 -Idlt-daemon-2.18.9/obj-x86_64-linux-gnu/include/dlt -Idlt-daemon-2.18.9/include/dlt -Idlt-daemon-2.18.9/src/shared -Idlt-daemon-2.18.9/src/core_dump_handler -Idlt-daemon-2.18.9/src/offlinelogstorage -Idlt-daemon-2.18.9/src/lib -Idlt-daemon-2.18.9/src/daemon -Idlt-daemon-2.18.9/src/console -Idlt-daemon-2.18.9/src/gateway -Idlt-daemon-2.18.9/systemd/3rdparty -g -O2 -ffile-prefix-map=dlt-daemon-2.18.9=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -isystem /include -std=gnu++0x -std=gnu++11 -Wall -Wextra -Wno-variadic-macros -Wno-strict-aliasing -DGTEST_HAS_PTHREAD=1 -MD -MT tests/CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o -MF CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o.d -o CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o -c dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp +dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp: In member function ‘virtual void t_dlt_logging_multiple_files_append_reinit_normal_Test::TestBody()’: +dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:106:13: error: format not a string literal and no format arguments [-Werror=format-security] + 106 | dlt_vlog(LOG_INFO, log1); + | ~~~~~~~~^~~~~~~~~~~~~~~~ +dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:110:13: error: format not a string literal and no format arguments [-Werror=format-security] + 110 | dlt_vlog(LOG_INFO, log2); + | ~~~~~~~~^~~~~~~~~~~~~~~~ +In file included from /usr/include/string.h:535, + from /usr/include/gtest/internal/gtest-port.h:264, + from /usr/include/gtest/internal/gtest-internal.h:40, + from /usr/include/gtest/gtest.h:62, + from dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:27: +In function ‘strncpy’, +--- + tests/gtest_dlt_daemon_multiple_files_logging.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/gtest_dlt_daemon_multiple_files_logging.cpp b/tests/gtest_dlt_daemon_multiple_files_logging.cpp +index 2da512e1..05b58f2c 100644 +--- a/tests/gtest_dlt_daemon_multiple_files_logging.cpp ++++ b/tests/gtest_dlt_daemon_multiple_files_logging.cpp +@@ -103,11 +103,11 @@ TEST(t_dlt_logging_multiple_files_append_reinit, normal) + const char* log2 = "TWO\n"; + + configure(path, file_name, true, file_size, max_file_size); +- dlt_vlog(LOG_INFO, log1); ++ dlt_vlog(LOG_INFO, "%s", log1); + EXPECT_NO_THROW(dlt_log_free()); + + configure(path, file_name, true, file_size, max_file_size); +- dlt_vlog(LOG_INFO, log2); ++ dlt_vlog(LOG_INFO, "%s", log2); + EXPECT_NO_THROW(dlt_log_free()); + verify_in_one_file(path, file_name, log1, log2); + } diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch new file mode 100644 index 0000000000..a4c18779c9 --- /dev/null +++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch @@ -0,0 +1,38 @@ +From b38761831670e980a58acb33d611f65255d678ac Mon Sep 17 00:00:00 2001 +From: Gianfranco Costamagna +Date: Fri, 28 Apr 2023 22:46:36 +0200 +Subject: [PATCH] Update CMakeLists.txt + +Link systemd libraries, to avoid underlinking of tests with +-DWITH_SYSTEMD_SOCKET_ACTIVATION=ON + +[ 82%] Linking CXX executable gtest_dlt_daemon_gateway +cd dlt-daemon-2.18.9/obj-x86_64-linux-gnu/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/gtest_dlt_daemon_gateway.dir/link.txt --verbose=1 +/usr/bin/c++ -g -O2 -ffile-prefix-map=dlt-daemon-2.18.9=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -isystem /include -std=gnu++0x -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -rdynamic CMakeFiles/gtest_dlt_daemon_gateway.dir/gtest_dlt_daemon_gateway.cpp.o CMakeFiles/gtest_dlt_daemon_gateway.dir/__/systemd/3rdparty/sd-daemon.c.o -o gtest_dlt_daemon_gateway -Wl,-rpath,dlt-daemon-2.18.9/obj-x86_64-linux-gnu/src/daemon ../src/daemon/libdlt_daemon.so /usr/lib/x86_64-linux-gnu/libgtest.a /usr/lib/x86_64-linux-gnu/libgtest_main.a -lrt /usr/lib/x86_64-linux-gnu/libgtest.a +/usr/bin/ld: ../src/daemon/libdlt_daemon.so: undefined reference to `sd_listen_fds_with_names' +--- + tests/CMakeLists.txt | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 579d7308..3155ca9a 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -21,8 +21,16 @@ else() + set(LIBRARIES socket) + endif() + ++if(WITH_SYSTEMD_JOURNAL) ++ if(SYSTEMD_VERSION LESS 209) ++ set(SYSTEMD_LIBS systemd-journal systemd-id128) ++ else(SYSTEMD_VERSION LESS 209) ++ set(SYSTEMD_LIBS systemd) ++ endif(SYSTEMD_VERSION LESS 209) ++endif(WITH_SYSTEMD_JOURNAL) ++ + set(DLT_LIBRARIES dlt ${GTEST_LIBS} ${LIBRARIES}) +-set(DLT_DAEMON_LIBRARIES dlt_daemon ${GTEST_LIBS} ${LIBRARIES}) ++set(DLT_DAEMON_LIBRARIES dlt_daemon ${GTEST_LIBS} ${LIBRARIES} ${SYSTEMD_LIBS}) + set(DLT_CONTROL_LIBRARIES dlt dlt_control_common_lib ${GTEST_LIBS}) + + #Receiver used for QTs. add_test() is not required diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb similarity index 90% rename from meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb rename to meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb index cfbe0ff60d..6b049df6cf 100644 --- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb +++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb @@ -17,19 +17,14 @@ DEPENDS = "zlib gzip-native json-c" SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https;branch=master \ file://0002-Don-t-execute-processes-as-a-specific-user.patch \ file://0004-Modify-systemd-config-directory.patch \ - file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ - file://0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch \ - file://0001-Fix-memory-leak.patch \ + file://481.patch \ + file://482.patch \ " -SRCREV = "6a3bd901d825c7206797e36ea98e10a218f5aad2" - -PV .= "+2.18.9git${SRCPV}" +SRCREV = "9a2312d3512a27620d41b9a325338b6e7b3d42de" S = "${WORKDIR}/git" -LDFLAGS:append:riscv64 = " -latomic" - -PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal dlt-examples dlt-adaptor dlt-adaptor-udp dlt-console ', '', d)} \ +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal dlt-examples dlt-adaptor dlt-adaptor-stdin dlt-adaptor-udp dlt-console ', '', d)} \ udp-connection dlt-system dlt-filetransfer " # dlt-dbus @@ -46,6 +41,7 @@ PACKAGECONFIG[udp-connection] = "-DWITH_UDP_CONNECTION=ON,-DWITH_UDP_CONNECTION= # Command line options PACKAGECONFIG[dlt-system] = "-DWITH_DLT_SYSTEM=ON,-DWITH_DLT_SYSTEM=OFF" PACKAGECONFIG[dlt-adaptor] = "-DWITH_DLT_ADAPTOR=ON,-DWITH_DLT_ADAPTOR=OFF,,dlt-daemon-systemd" +PACKAGECONFIG[dlt-adaptor-stdin] = "-DWITH_DLT_ADAPTOR_STDIN=ON,-DWITH_DLT_ADAPTOR_STDIN=OFF,,dlt-daemon-systemd" PACKAGECONFIG[dlt-adaptor-udp] = "-DWITH_DLT_ADAPTOR_UDP=ON,-DWITH_DLT_ADAPTOR_UDP=OFF,,dlt-daemon-systemd" PACKAGECONFIG[dlt-filetransfer] = "-DWITH_DLT_FILETRANSFER=ON,-DWITH_DLT_FILETRANSFER=OFF" PACKAGECONFIG[dlt-console] = "-DWITH_DLT_CONSOLE=ON,-DWITH_DLT_CONSOLE=OFF,,dlt-daemon-systemd"