From: Mike Yuan Date: Wed, 24 Dec 2025 18:21:41 +0000 (+0100) Subject: core/dbus-cgroup: actually allow empty assignment for BindNetworkInterface= X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=705d2c527f15136ca8ddb88b8c5d5a604f03068d;p=thirdparty%2Fsystemd.git core/dbus-cgroup: actually allow empty assignment for BindNetworkInterface= --- diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index 29b59ea7057..92c59cd4ecf 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -1893,6 +1893,7 @@ int bus_cgroup_set_property( return 1; } + if (streq(name, "RestrictNetworkInterfaces")) { int is_allow_list; _cleanup_strv_free_ char **l = NULL; @@ -1958,19 +1959,15 @@ int bus_cgroup_set_property( if (r < 0) return r; - if (!ifname_valid_full(s, IFNAME_VALID_ALTERNATIVE)) + if (!isempty(s) && !ifname_valid_full(s, IFNAME_VALID_ALTERNATIVE)) return sd_bus_error_setf(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid interface name: %s", s); if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - if (isempty(s)) - c->bind_network_interface = mfree(c->bind_network_interface); - else { - r = free_and_strdup_warn(&c->bind_network_interface, s); - if (r < 0) - return r; - } - - unit_write_settingf(u, flags, name, "BindNetworkInterface=%s", strempty(s)); + r = free_and_strdup_warn(&c->bind_network_interface, empty_to_null(s)); + if (r < 0) + return r; + if (r > 0) + unit_write_settingf(u, flags, name, "BindNetworkInterface=%s", s); } return 1;