cgroup: parse array cgroup properties correctly when they aren't at the end of the message

This commit is contained in:
Lennart Poettering 2014-02-24 02:59:57 +01:00
parent 55dab2ed83
commit 9c96019d31
Notes: Lennart Poettering 2014-02-24 03:40:42 +01:00
Backport: bugfix

View File

@ -278,6 +278,10 @@ int bus_cgroup_set_property(
if (r < 0)
return r;
r = sd_bus_message_exit_container(message);
if (r < 0)
return r;
if (mode != UNIT_CHECK) {
CGroupBlockIODeviceBandwidth *a, *next;
_cleanup_free_ char *buf = NULL;
@ -356,6 +360,10 @@ int bus_cgroup_set_property(
n++;
}
r = sd_bus_message_exit_container(message);
if (r < 0)
return r;
if (mode != UNIT_CHECK) {
_cleanup_free_ char *buf = NULL;
_cleanup_fclose_ FILE *f = NULL;
@ -481,7 +489,6 @@ int bus_cgroup_set_property(
a->r = !!strchr(rwm, 'r');
a->w = !!strchr(rwm, 'w');
a->m = !!strchr(rwm, 'm');
}
n++;
@ -489,6 +496,10 @@ int bus_cgroup_set_property(
if (r < 0)
return r;
r = sd_bus_message_exit_container(message);
if (r < 0)
return r;
if (mode != UNIT_CHECK) {
_cleanup_free_ char *buf = NULL;
_cleanup_fclose_ FILE *f = NULL;