core/dbus: revert oversimplification (#3309)

free_and_strdup handles NULL but not empty strings.

See also:
https://github.com/systemd/systemd/pull/3283#issuecomment-220603145
https://github.com/systemd/systemd/pull/3307
This commit is contained in:
Jonathan Boulle 2016-05-20 16:20:00 +02:00 committed by Lennart Poettering
parent 6f270e6bd8
commit 4e282d11b7

View file

@ -1454,9 +1454,10 @@ int bus_exec_context_set_transient_property(
return r;
if (mode != UNIT_CHECK) {
r = free_and_strdup(&c->selinux_context, s);
if (r < 0)
return r;
if (isempty(s))
c->selinux_context = mfree(c->selinux_context);
else if (free_and_strdup(&c->selinux_context, s) < 0)
return -ENOMEM;
unit_write_drop_in_private_format(u, mode, name, "%s=%s\n", name, strempty(s));
}