X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=libudev%2Flibudev-device-private.c;h=430e3e64d4dbe74049515bad6e3c19324cccb3c8;hb=cad40a5fe75d876af22f68b688494b9cd98cc899;hp=bf93834c10a7353eb03980caa04aad46bd4b581b;hpb=24d1076696ebe6696a8b8df414ab265aa6fc89c2;p=elogind.git diff --git a/libudev/libudev-device-private.c b/libudev/libudev-device-private.c index bf93834c1..430e3e64d 100644 --- a/libudev/libudev-device-private.c +++ b/libudev/libudev-device-private.c @@ -34,8 +34,12 @@ static void udev_device_tag(struct udev_device *dev, const char *tag, bool add) util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/.udev/tags/", tag, "/", id, NULL); if (add) { + int fd; + util_create_path(udev, filename); - symlink(udev_device_get_devpath(dev), filename); + fd = open(filename, O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); + if (fd >= 0) + close(fd); } else { unlink(filename); }