From: Lennart Poettering Date: Thu, 14 Apr 2022 15:57:33 +0000 (+0200) Subject: bus-unit-util: make sure we can set LoadCredentials= property with a single string X-Git-Tag: v251-rc2~84 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=255689ae92224df2d2bd7b65fb1f566d6fda15e3;p=thirdparty%2Fsystemd.git bus-unit-util: make sure we can set LoadCredentials= property with a single string LoadCredentials= in unit files supports a syntax passing a single string only (in which case the credentials are propagated down from the host). but systemd-run's --property= setting doesn't allow that yet. Fix that. --- diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c index 4f02c2c3730..d78d75bf0f8 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c @@ -1156,9 +1156,12 @@ static int bus_append_execute_property(sd_bus_message *m, const char *field, con return log_oom(); if (r < 0) return log_error_errno(r, "Failed to parse %s= parameter: %s", field, eq); - if (r == 0 || !p) + if (r == 0) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Missing argument to %s=.", field); + if (isempty(p)) /* If only one field is specified, then this means "inherit from above" */ + p = eq; + r = sd_bus_message_append(m, "a(ss)", 1, word, p); } if (r < 0)