From 096e59edc98646edb1072c646c631729bee04ad0 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Mon, 17 Nov 2008 02:01:37 +0100 Subject: [PATCH] limit $attr() magic to well-known links only --- udev/lib/libudev-device.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/udev/lib/libudev-device.c b/udev/lib/libudev-device.c index c4714e40..055263bb 100644 --- a/udev/lib/libudev-device.c +++ b/udev/lib/libudev-device.c @@ -859,11 +859,16 @@ const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const } if (S_ISLNK(statbuf.st_mode)) { - /* links return the last element of the target path */ char target[UTIL_NAME_SIZE]; int len; char *pos; + /* some core links return the last element of the target path */ + if (strcmp(sysattr, "driver") != 0 && + strcmp(sysattr, "subsystem") != 0 && + strcmp(sysattr, "module") != 0) + goto out; + len = readlink(path, target, sizeof(target)); if (len > 0) { target[len] = '\0'; -- 2.39.5