chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev string
[elogind.git]
/
src
/
udev
/
udev-node.c
diff --git
a/src/udev/udev-node.c
b/src/udev/udev-node.c
index 26a43e9623c5bd77af7e7ee444505821509271a6..1bef5212e6c136e289f00249bfec3b2966d9b252 100644
(file)
--- a/
src/udev/udev-node.c
+++ b/
src/udev/udev-node.c
@@
-91,7
+91,7
@@
static int node_symlink(struct udev *udev, const char *node, const char *slink)
buf[len] = '\0';
if (strcmp(target, buf) == 0) {
log_debug("preserve already existing symlink '%s' to '%s'\n", slink, target);
buf[len] = '\0';
if (strcmp(target, buf) == 0) {
log_debug("preserve already existing symlink '%s' to '%s'\n", slink, target);
-
udev_selinux_lsetfilecon(udev, slink, S_IFLNK
);
+
label_fix(slink, true, false
);
utimensat(AT_FDCWD, slink, NULL, AT_SYMLINK_NOFOLLOW);
goto exit;
}
utimensat(AT_FDCWD, slink, NULL, AT_SYMLINK_NOFOLLOW);
goto exit;
}
@@
-100,14
+100,14
@@
static int node_symlink(struct udev *udev, const char *node, const char *slink)
} else {
log_debug("creating symlink '%s' to '%s'\n", slink, target);
do {
} else {
log_debug("creating symlink '%s' to '%s'\n", slink, target);
do {
- err =
util_create_path_selinux(udev, slink
);
+ err =
mkdir_parents_label(slink, 0755
);
if (err != 0 && err != -ENOENT)
break;
if (err != 0 && err != -ENOENT)
break;
-
udev_selinux_setfscreatecon(udev,
slink, S_IFLNK);
+
label_context_set(
slink, S_IFLNK);
err = symlink(target, slink);
if (err != 0)
err = -errno;
err = symlink(target, slink);
if (err != 0)
err = -errno;
-
udev_selinux_resetfscreatecon(udev
);
+
label_context_clear(
);
} while (err == -ENOENT);
if (err == 0)
goto exit;
} while (err == -ENOENT);
if (err == 0)
goto exit;
@@
-117,14
+117,14
@@
static int node_symlink(struct udev *udev, const char *node, const char *slink)
util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL);
unlink(slink_tmp);
do {
util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL);
unlink(slink_tmp);
do {
- err =
util_create_path_selinux(udev, slink_tmp
);
+ err =
mkdir_parents_label(slink_tmp, 0755
);
if (err != 0 && err != -ENOENT)
break;
if (err != 0 && err != -ENOENT)
break;
-
udev_selinux_setfscreatecon(udev,
slink_tmp, S_IFLNK);
+
label_context_set(
slink_tmp, S_IFLNK);
err = symlink(target, slink_tmp);
if (err != 0)
err = -errno;
err = symlink(target, slink_tmp);
if (err != 0)
err = -errno;
-
udev_selinux_resetfscreatecon(udev
);
+
label_context_clear(
);
} while (err == -ENOENT);
if (err != 0) {
log_error("symlink '%s' '%s' failed: %m\n", target, slink_tmp);
} while (err == -ENOENT);
if (err != 0) {
log_error("symlink '%s' '%s' failed: %m\n", target, slink_tmp);
@@
-226,7
+226,7
@@
static void link_update(struct udev_device *dev, const char *slink, bool add)
do {
int fd;
do {
int fd;
- err =
util_create_path(udev, filename
);
+ err =
mkdir_parents(filename, 0755
);
if (err != 0 && err != -ENOENT)
break;
fd = open(filename, O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444);
if (err != 0 && err != -ENOENT)
break;
fd = open(filename, O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444);
@@
-269,7
+269,6
@@
void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev
static int node_fixup(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
{
static int node_fixup(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
{
- struct udev *udev = udev_device_get_udev(dev);
const char *devnode = udev_device_get_devnode(dev);
dev_t devnum = udev_device_get_devnum(dev);
struct stat stats;
const char *devnode = udev_device_get_devnode(dev);
dev_t devnum = udev_device_get_devnum(dev);
struct stat stats;
@@
-308,7
+307,7
@@
static int node_fixup(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid
* something else has set a custom context in the meantime.
*/
if (strcmp(udev_device_get_action(dev), "add") == 0)
* something else has set a custom context in the meantime.
*/
if (strcmp(udev_device_get_action(dev), "add") == 0)
-
udev_selinux_lsetfilecon(udev, devnode, mod
e);
+
label_fix(devnode, true, fals
e);
/* always update timestamp when we re-use the node, like on media change events */
utimensat(AT_FDCWD, devnode, NULL, 0);
/* always update timestamp when we re-use the node, like on media change events */
utimensat(AT_FDCWD, devnode, NULL, 0);