Skip to content

Commit

Permalink
dlt-daemon: upgrade 2.18.8 -> 2.18.9 (commit: 9a2312d3512a27620d41b9a…
Browse files Browse the repository at this point in the history
…325338b6e7b3d42de)

Drop patches now part of new upstream release:
- 0001-Fix-memory-leak.patch
- 0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
- 0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch

Cherry-pick and propose upstream two patches to fix build failures with security hardening flags enabled
and with some systemd configuration (underlink)
- 481.patch
- 482.patch

Add new dlt-adaptor-stdin cmake optional flag
Drop PV variable, not needed anymore
Drop latomic manual added flag, upstream code changed to avoid its need
See: COVESA/dlt-daemon#433 and COVESA/dlt-daemon@2224cdd
(changed from atomic_bool to atomic_int, the latter doesn't require manual atomic library link since
it can be optimized properly by the compiler on riscv platforms)

What's Changed:

    dlt-system: fix a libc buffer overflow detection on 32bit targets by @mtitinger in openembedded#337
    dlt-daemon: create sockets using "android way" by @sebastienraillet in openembedded#333
    fixes compilation issue with clang by @sebastienraillet in openembedded#339
    dlt-daemon: Only create directories if they do not exist yet by @alexmohr in openembedded#340
    dlt-system : fix invalid free with ConfigurationFileName by @mtitinger in openembedded#342
    fix for the issue openembedded#341 by @rvalovyi in openembedded#347
    Forcibly the severity level set by @dhnatiuk1 in openembedded#346
    fix -Wformat issues reported by clang by @sebastienraillet in openembedded#349
    dlt-system: fix invalid free by removing unused TempDir by @andreirusu96 in openembedded#350
    Support for Cygwin toolchain. by @DoctorNoobingstoneIPresume in openembedded#351
    filetransfer: Return error if no free space by @ssugiura in openembedded#354
    lib: Correct VARI usage in dlt_user_log_write_uint by @ssugiura in openembedded#356
    Fix DLT User/Client tests by @andreirusu96 in openembedded#357
    tests: Deplicate unused files and variables by @ssugiura in openembedded#359
    Fix the target name in documentation by @mawillers in openembedded#372
    cmake: Add option to enable each adaptor by itself by @alexmohr in openembedded#364
    cmake: Add options to enable/disable each dlt console tool by @alexmohr in openembedded#363
    filetransfer: Fix getFileCreationDate2 stat check by @andreirusu96 in openembedded#361
    dlt_config_file_parser.c:Fix a pointer release bug in the file。 by @Leslie-bcy in openembedded#376
    Update workflow by @thanhbnq in openembedded#389
    README: Update link to github actions by @ssugiura in openembedded#392
    Fix handle returned value by @thanhbnq in openembedded#384
    systemd: install adaptor-udp service for adaptor=on by @danielweber2018 in openembedded#393
    automotive-dlt.pc: add the path to find the static library by @zeerd in openembedded#387
    enforce-trace-limit: ContextLogLevel is now enforced in the daemon by @alexmohr in openembedded#382
    dlt-daemon-connection: Start up even if not all bindings are valid by @alexmohr in openembedded#380
    dlt_common.c: Change default logging_mode by @wusto in openembedded#406
    logstorage: Truncate ECUid in Logstorage filter to prevent crash by @andreirusu96 in openembedded#402
    Update dlt_for_developers.md by @marques-bruno in openembedded#405
    dlt-gateway: Fix crash on invalid ip by @alexmohr in openembedded#381
    dlt_client:Block in connect() by @thanhbnq in openembedded#409
    dlt_daemon_client: Fix change loglevel of application by @lti9hc in openembedded#408
    Update maintainer by @thanhbnq in openembedded#410
    systemd: add support for socket activation via systemd by @alexmohr in openembedded#401
    internal-logging: Fix issues with file logging by @alexmohr in openembedded#378
    dlt_common: change output of message for log initialization by @lti9hc in openembedded#412
    Avoid memory corruption behind buffer wp in function dlt_getloginfo_conv_ascii_to_id by @michael-methner in openembedded#411
    dlt_daemon_client: Fix Control Msg ECUId comparison with active Gateway by @andreirusu96 in openembedded#414
    Fix for Resource and Memory Leak by @lti9hc in openembedded#418
    dlt-receive: set host interface and allow multiple udp multicast addresses by @thanhbnq in openembedded#420
    dlt-system: Fix buffer overflow detection on 32bit targets by @sandy-lcq in openembedded#398
    cmake: network trace enable toggle by @danielweber2018 in openembedded#424
    client: Fix Get Log Info response conversion method by @andreirusu96 in openembedded#422
    filetransfer: fix filesize divisible by blocksize case by @danielweber2018 in openembedded#383
    Updates for Coding Styles by @thanhbnq in openembedded#425
    gateway: Fix Node handling and ECUid checks by @andreirusu96 in openembedded#429
    Update contacts and removed mailing lists by @michael-methner in openembedded#431
    dlt-user: Fix crashes in dlt_free during dlt_init by @alexmohr in openembedded#362
    dlt-convert: Fix memory leak by calling dlt_file_free by @lvklevankhanh in openembedded#434
    dlt-user: fix potential non closed socket in init/free by @alexmohr in openembedded#435
    Check for negative index in dlt_file_message by @michael-methner in openembedded#437
    Fix memory leak by @lvklevankhanh in openembedded#441
    dlt-connection: add socket timeout by @alexmohr in openembedded#439
    Installs dlt.conf on android by @sebastienraillet in openembedded#446
    This changes a mispatch from fcb676a to install udp binary correctly by @smooge in openembedded#449
    logfile: exhance internal dlt logging by introducing size limits by @danielweber2018 in openembedded#369
    dlt-logd-converter: fixes android 12 compilation by @sebastienraillet in openembedded#445
    dlt-logd-converter: Fix getting log level from log msg by @RobinChenJP in openembedded#456
    house-keeper: remove infinite wait by @alexmohr in openembedded#438
    cmake: remove duplicated option message by @minminlittleshrimp in openembedded#454
    Android: Add new feature in Android bp by @minminlittleshrimp in openembedded#461
    dlt_multiple_files: remove superfluous mode bits and add header file to header list by @minminlittleshrimp in openembedded#462
    dlt-user: fix crash with certain strings by @alexmohr in openembedded#463

Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
  • Loading branch information
Gianfranco Costamagna authored and kraj committed Apr 29, 2023
1 parent c5f330b commit be3bd0a
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 128 deletions.

This file was deleted.

This file was deleted.

This file was deleted.

47 changes: 47 additions & 0 deletions meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
From 95476de802585629c6d89707a9247bbb0c70f6c9 Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
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);
}
38 changes: 38 additions & 0 deletions meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
From b38761831670e980a58acb33d611f65255d678ac Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
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
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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"
Expand Down

0 comments on commit be3bd0a

Please sign in to comment.