diff --git a/CHANGES b/CHANGES index 9fc76d2f..bfc7e96f 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ SVN-HEAD Fix error propagation during expression evaluation Detect excessive recursion depth during expression eval (#2365) Return a string rather than NULL for unknown errors + Skip non-file sysfs entries for speed lm_sensors.init: Support new format of /etc/sysconfig/lm_sensors (#2246) Drop support for kernels 2.4 and earlier lm_sensors.init.suse: Delete (actual SuSE script is much different) diff --git a/lib/sysfs.c b/lib/sysfs.c index 7f805a80..4c383eb5 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -357,12 +357,15 @@ static int sensors_read_dynamic_chip(sensors_chip_features *chip, sensors_fatal_error(__func__, "Out of memory"); while ((ent = readdir(dir))) { - char *name = ent->d_name; + char *name; int nr; - if (ent->d_name[0] == '.') + /* Skip directories and symlinks */ + if (ent->d_type != DT_REG) continue; + name = ent->d_name; + sftype = sensors_subfeature_get_type(name, &nr); if (sftype == SENSORS_SUBFEATURE_UNKNOWN) continue;