- syslen = util_strlcpy(buf, udev_get_sys_path(udev), sizeof(buf));
- len = readlink(path, &buf[syslen], sizeof(buf)-syslen);
- if (len <= 0 || len >= (ssize_t)(sizeof(buf)-syslen)) {
- unlink(path);
- continue;
- }
- buf[syslen + len] = '\0';
- dbg(udev, "old watch to '%s' found\n", buf);
- dev = udev_device_new_from_syspath(udev, buf);
- if (dev == NULL) {
- unlink(path);
- continue;
- }
+ if (sscanf(s, "%c%i:%i", &type, &maj, &min) != 3)
+ goto unlink;
+ dev = udev_device_new_from_devnum(udev, type, makedev(maj, min));
+ if (dev == NULL)
+ goto unlink;