mirror of
https://github.com/systemd/systemd.git
synced 2025-03-22 06:50:18 +03:00
[PATCH] fix special file mode mask for temporary device node
This commit is contained in:
parent
f22e9686fd
commit
6a24dc7477
@ -1068,7 +1068,7 @@ EOF
|
||||
devpath => "/block/sda",
|
||||
exp_name => "sda",
|
||||
conf => <<EOF
|
||||
BUS="scsi", KERNEL="sda", PROGRAM="/usr/bin/test -b %N" NAME="%N"
|
||||
BUS="scsi", KERNEL="sda", PROGRAM="/usr/bin/test ! -b %N" NAME="%N"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
|
34
udev_add.c
34
udev_add.c
@ -89,6 +89,22 @@ int udev_make_node(struct udevice *udev, const char *file, int major, int minor,
|
||||
dbg("already present file '%s' unlinked", file);
|
||||
|
||||
create:
|
||||
switch (udev->type) {
|
||||
case 'b':
|
||||
mode |= S_IFBLK;
|
||||
break;
|
||||
case 'c':
|
||||
case 'u':
|
||||
mode |= S_IFCHR;
|
||||
break;
|
||||
case 'p':
|
||||
mode |= S_IFIFO;
|
||||
break;
|
||||
default:
|
||||
dbg("unknown node type %c\n", udev->type);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
selinux_setfscreatecon(file, udev->kernel_name, mode);
|
||||
retval = mknod(file, mode, makedev(major, minor));
|
||||
if (retval != 0) {
|
||||
@ -131,24 +147,8 @@ static int create_node(struct udevice *udev, struct sysfs_class_device *class_de
|
||||
snprintf(filename, NAME_SIZE, "%s/%s", udev_root, udev->name);
|
||||
filename[NAME_SIZE-1] = '\0';
|
||||
|
||||
switch (udev->type) {
|
||||
case 'b':
|
||||
udev->mode |= S_IFBLK;
|
||||
break;
|
||||
case 'c':
|
||||
case 'u':
|
||||
udev->mode |= S_IFCHR;
|
||||
break;
|
||||
case 'p':
|
||||
udev->mode |= S_IFIFO;
|
||||
break;
|
||||
default:
|
||||
dbg("unknown node type %c\n", udev->type);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* create parent directories if needed */
|
||||
if (strrchr(udev->name, '/'))
|
||||
if (strchr(udev->name, '/'))
|
||||
create_path(filename);
|
||||
|
||||
if (udev->owner[0] != '\0') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user