Allow block and char classes in DeviceAllow bus properties (#4353)

Allowed paths are unified betwen the configuration file parses and the bus
property checker. The biggest change is that the bus code now allows "block-"
and "char-" classes. In addition, path_startswith("/dev") was used in the bus
code, and startswith("/dev") was used in the config file code. It seems
reasonable to use path_startswith() which allows a slightly broader class of
strings.

Fixes #3935.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2016-10-12 11:12:11 +02:00
committed by Lennart Poettering
parent 9f1008d513
commit 3ccb886283
4 changed files with 11 additions and 7 deletions
+8 -3
View File
@@ -812,9 +812,14 @@ bool is_device_path(const char *path) {
/* Returns true on paths that refer to a device, either in
* sysfs or in /dev */
return
path_startswith(path, "/dev/") ||
path_startswith(path, "/sys/");
return path_startswith(path, "/dev/") ||
path_startswith(path, "/sys/");
}
bool is_deviceallow_pattern(const char *path) {
return path_startswith(path, "/dev/") ||
startswith(path, "block-") ||
startswith(path, "char-");
}
int systemd_installation_has_version(const char *root, unsigned minimal_version) {