mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
udev: do not export "static node" tags for non-existing devices
This commit is contained in:
parent
bc29e507e2
commit
ca2bb1606a
Notes:
Lennart Poettering
2014-05-24 11:34:16 +08:00
Backport: bugfix
@ -2555,10 +2555,15 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
|
||||
struct stat stats;
|
||||
|
||||
/* we assure, that the permissions tokens are sorted before the static token */
|
||||
|
||||
if (mode == 0 && uid == 0 && gid == 0 && tags == NULL)
|
||||
goto next;
|
||||
|
||||
strscpyl(device_node, sizeof(device_node), "/dev/", rules_str(rules, cur->key.value_off), NULL);
|
||||
if (stat(device_node, &stats) != 0)
|
||||
break;
|
||||
if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
|
||||
break;
|
||||
|
||||
/* export the tags to a directory as symlinks, allowing otherwise dead nodes to be tagged */
|
||||
if (tags) {
|
||||
@ -2588,11 +2593,6 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
|
||||
if (mode == 0 && uid == 0 && gid == 0)
|
||||
break;
|
||||
|
||||
if (stat(device_node, &stats) != 0)
|
||||
break;
|
||||
if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
|
||||
break;
|
||||
|
||||
if (mode == 0) {
|
||||
if (gid > 0)
|
||||
mode = 0660;
|
||||
|
Loading…
Reference in New Issue
Block a user