chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libudev: add udev_device_new_from_devnum()
[elogind.git]
/
udev
/
lib
/
libudev-util.c
diff --git
a/udev/lib/libudev-util.c
b/udev/lib/libudev-util.c
index 7eadc7f2961270842691b12b0b223dee5174a095..aa544fea2291da4be0c20642f70fee3c3e89c717 100644
(file)
--- a/
udev/lib/libudev-util.c
+++ b/
udev/lib/libudev-util.c
@@
-64,12
+64,17
@@
ssize_t util_get_sys_driver(struct udev *udev, const char *syspath, char *driver
int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size)
{
int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size)
{
+ struct stat statbuf;
char link_target[UTIL_PATH_SIZE];
int len;
int i;
int back;
char link_target[UTIL_PATH_SIZE];
int len;
int i;
int back;
+ if (lstat(syspath, &statbuf) < 0)
+ return -1;
+ if (!S_ISLNK(statbuf.st_mode))
+ return -1;
len = readlink(syspath, link_target, sizeof(link_target));
if (len <= 0)
return -1;
len = readlink(syspath, link_target, sizeof(link_target));
if (len <= 0)
return -1;