diff --git a/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater/0001-hawkbit-client-do-not-pass-NULL-format-to-g_strdup_v.patch b/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater/0001-hawkbit-client-do-not-pass-NULL-format-to-g_strdup_v.patch new file mode 100644 index 0000000000000000000000000000000000000000..ce54fd1308536ddb38d3db40eb4967dc61716795 --- /dev/null +++ b/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater/0001-hawkbit-client-do-not-pass-NULL-format-to-g_strdup_v.patch @@ -0,0 +1,44 @@ +From 439feeeb0080b4fdc93cc41adfbebc2f85aa8317 Mon Sep 17 00:00:00 2001 +From: Bastian Krause <bst@pengutronix.de> +Date: Tue, 16 Nov 2021 21:08:01 +0100 +Subject: [PATCH] hawkbit-client: do not pass NULL format to g_strdup_vprintf() + in build_api_url() + +build_api_url() can be called with NULL to get the base deployment URL. +Passing NULL as a format argument to g_strdup_vprintf() returns NULL if +GLIB_USING_SYSTEM_PRINTF is defined, otherwise it leads to a segmentation +fault. The format argument is explicitly documented as "not nullable", +so we rely on undefined behavior here. + +Skip over va_start(), g_strdup_vprintf(), va_end() for path=NULL to fix +that. + +Upstream-Status: Backport + +Signed-off-by: Bastian Krause <bst@pengutronix.de> +--- + src/hawkbit-client.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/hawkbit-client.c b/src/hawkbit-client.c +index f7a8886..67fd7bc 100644 +--- a/src/hawkbit-client.c ++++ b/src/hawkbit-client.c +@@ -702,9 +702,11 @@ static gchar* build_api_url(const gchar *path, ...) + g_autofree gchar *buffer = NULL; + va_list args; + +- va_start(args, path); +- buffer = g_strdup_vprintf(path, args); +- va_end(args); ++ if (path) { ++ va_start(args, path); ++ buffer = g_strdup_vprintf(path, args); ++ va_end(args); ++ } + + return g_strdup_printf( + "%s://%s/%s/controller/v1/%s%s%s", +-- +2.25.1 + diff --git a/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater_%.bbappend b/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater_%.bbappend index c5488c8a9b959d8ea17ac37045f031965d3db302..7d4a313d457b5c0ce45b17bdd157dcff8972b288 100644 --- a/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater_%.bbappend +++ b/meta-oniro-core/recipes-support/rauc-hawkbit-updater/rauc-hawkbit-updater_%.bbappend @@ -1,4 +1,5 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://0001-Do-not-include-glibc-specific-bits-types-struct_tm.h.patch" - +SRC_URI += " \ + file://0001-Do-not-include-glibc-specific-bits-types-struct_tm.h.patch \ + file://0001-hawkbit-client-do-not-pass-NULL-format-to-g_strdup_v.patch"