summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-12-02 00:15:13 +0100
committerLennart Poettering <lennart@poettering.net>2014-12-02 13:23:03 +0100
commit230314d718cb68b328961c9723976e54c17d06f7 (patch)
tree57cce1396ad61174a46bb0563edbed56469fd0a8
parentc09da72900b03fcddade06643f24c6357f3e0482 (diff)
core: OOM really shouldn't be considered a deserialization parse failure
-rw-r--r--src/core/dbus.c9
-rw-r--r--src/core/manager.c11
2 files changed, 16 insertions, 4 deletions
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 (;;) {