File 0002-system-updater-Parse-updater-format-from-XML-configu.patch of Package wicked
From ebb3e0d38a501d15956c1b9fa270df1dbc03b8e4 Mon Sep 17 00:00:00 2001
From: Stephan Brunner <s.brunner@stephan-brunner.net>
Date: Mon, 9 Oct 2023 10:55:33 +0200
Subject: [PATCH 1/8] system-updater: Parse updater format from XML
configuration to ensure install calls can run.
Reference: gh#openSUSE/wicked#985
Upstream: submitted
In ni_system_updaters_init(), the updater's format is set by using ni_updater_format_type(ex->format).
This in turn is used by ni_system_updater_generic_leaseinfo_create(), which is called by ni_system_updater_generic_install_call().
As ex->format is never actually set, ni_system_updater_generic_leaseinfo_create will always fail with an unknown format error and the install call is never executed.
---
src/appconfig.c | 12 ++++++++++++
src/extension.c | 1 +
2 files changed, 13 insertions(+)
diff --git a/src/appconfig.c b/src/appconfig.c
index 82afb403..53d82ba5 100644
--- a/src/appconfig.c
+++ b/src/appconfig.c
@@ -2025,6 +2025,7 @@ ni_config_parse_system_updater(ni_extension_t **list, xml_node_t *node)
{
ni_extension_t *ex, *old;
const char *name;
+ const char *format;
ni_assert(list && node);
@@ -2047,6 +2048,17 @@ ni_config_parse_system_updater(ni_extension_t **list, xml_node_t *node)
return FALSE;
}
+ format = xml_node_get_attr(node, "format");
+ if (format) {
+ ex->format = strdup(format);
+
+ if (!ex->format) {
+ ni_warn("[%s] failed to allocate memory for format-string", node->name);
+ ni_extension_free(ex);
+ return FALSE;
+ }
+ }
+
if (ex->c_bindings) {
ni_warn("[%s] builtin actions not supported in %s extensions",
xml_node_location(node), node->name);
diff --git a/src/extension.c b/src/extension.c
index 4f075e20..bf23d0c0 100644
--- a/src/extension.c
+++ b/src/extension.c
@@ -199,6 +199,7 @@ ni_extension_free(ni_extension_t *ex)
if (ex) {
ni_string_free(&ex->name);
ni_string_free(&ex->interface);
+ ni_string_free(&ex->format);
ni_script_action_list_destroy(&ex->actions);
ni_c_binding_list_destroy(&ex->c_bindings);
--
2.35.3