From: Lennart Poettering Date: Mon, 1 Dec 2014 23:15:13 +0000 (+0100) Subject: core: OOM really shouldn't be considered a deserialization parse failure X-Git-Tag: v218~161 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=230314d718cb68b328961c9723976e54c17d06f7;hp=c09da72900b03fcddade06643f24c6357f3e0482 core: OOM really shouldn't be considered a deserialization parse failure --- diff --git a/src/core/dbus.c b/src/core/dbus.c index 79cf414ee..87da9335a 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 7b2550065..5fbb375cd 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 (;;) {