diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-12-02 00:15:13 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-12-02 13:23:03 +0100 |
commit | 230314d718cb68b328961c9723976e54c17d06f7 (patch) | |
tree | 57cce1396ad61174a46bb0563edbed56469fd0a8 | |
parent | c09da72900b03fcddade06643f24c6357f3e0482 (diff) |
core: OOM really shouldn't be considered a deserialization parse failure
-rw-r--r-- | src/core/dbus.c | 9 | ||||
-rw-r--r-- | src/core/manager.c | 11 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/core/dbus.c b/src/core/dbus.c index 79cf414eee..87da9335a8 100644 --- a/src/core/dbus.c +++ b/src/core/dbus.c @@ -1144,15 +1144,20 @@ void bus_track_serialize(sd_bus_track *t, FILE *f) { int bus_track_deserialize_item(char ***l, const char *line) { const char *e; + int r; assert(l); assert(line); e = startswith(line, "subscribed="); if (!e) - return -EINVAL; + return 0; + + r = strv_extend(l, e); + if (r < 0) + return r; - return strv_extend(l, e); + return 1; } int bus_track_coldplug(Manager *m, sd_bus_track **t, char ***l) { diff --git a/src/core/manager.c b/src/core/manager.c index 7b2550065d..5fbb375cd4 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -2394,8 +2394,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { m->kdbus_fd = fdset_remove(fds, fd); } - } else if (bus_track_deserialize_item(&m->deserialized_subscribed, l) < 0) - log_warning("Unknown serialization item '%s'", l); + } else { + int k; + + k = bus_track_deserialize_item(&m->deserialized_subscribed, l); + if (k < 0) + log_debug_errno(k, "Failed to deserialize bus tracker object: %m"); + else if (k == 0) + log_debug("Unknown serialization item '%s'", l); + } } for (;;) { |