chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
if needed, store database entries also for devices which do not have a device node
[elogind.git]
/
udev
/
lib
/
libudev-device.c
diff --git
a/udev/lib/libudev-device.c
b/udev/lib/libudev-device.c
index c4714e4088d1a8dc6f1b5b0cc774fab307bf6e12..055263bbef750232c22d48ff1b535f19ec634448 100644
(file)
--- 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)) {
}
if (S_ISLNK(statbuf.st_mode)) {
- /* links return the last element of the target path */
char target[UTIL_NAME_SIZE];
int len;
char *pos;
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';
len = readlink(path, target, sizeof(target));
if (len > 0) {
target[len] = '\0';