X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Flib%2Flibudev-util.c;h=aa544fea2291da4be0c20642f70fee3c3e89c717;hb=4c9dff47f696b1e6c89cc6e0a7ba683067927821;hp=7053a2f82554726508bd39110f526233b7a1259d;hpb=8753fadf2a6ecead372e71b8bf9336cf29f9c958;p=elogind.git
diff --git a/udev/lib/libudev-util.c b/udev/lib/libudev-util.c
index 7053a2f82..aa544fea2 100644
--- a/udev/lib/libudev-util.c
+++ b/udev/lib/libudev-util.c
@@ -17,8 +17,6 @@
* along with this program. If not, see .
*/
-#include "config.h"
-
#include
#include
#include
@@ -50,6 +48,7 @@ static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *sy
if (pos == NULL)
return -1;
pos = &pos[1];
+ info(udev, "resolved link to: '%s'\n", pos);
return util_strlcpy(subsystem, pos, size);
}
@@ -65,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)
{
+ struct stat statbuf;
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;