X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fdbus-cgroup.c;h=b8a77254d94d20da932ca57a7143b6c58a5c694b;hp=792f37eef588e8ac5add4d38283b5fc2dc7b57a5;hb=90060676c442604780634c0a993e3f9c3733f8e6;hpb=1620510ada018f1e1f0be114714826f6698501f2 diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index 792f37eef..b8a77254d 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -442,8 +442,11 @@ int bus_cgroup_set_property( while ((r = sd_bus_message_read(message, "(ss)", &path, &rwm)) > 0) { - if (!path_startswith(path, "/dev")) - return sd_bus_error_set_errnof(error, EINVAL, "DeviceAllow= requires device node"); + if ((!startswith(path, "/dev/") && + !startswith(path, "block-") && + !startswith(path, "char-")) || + strpbrk(path, WHITESPACE)) + return sd_bus_error_set_errnof(error, EINVAL, "DeviceAllow= requires device node"); if (isempty(rwm)) rwm = "rwm";