diff options
author | Guenter Roeck <linux@roeck-us.net> | 2014-02-28 13:37:55 -0500 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2014-03-03 11:01:06 -0500 |
commit | 648cd48c9e566f53c5df30d79857e0937ae13b09 (patch) | |
tree | 1fd88b546e0018249a91befa414730de0a9a553b /drivers/hwmon/hwmon.c | |
parent | 768821a302ae98c2d6a570e0ad63780180ba34db (diff) |
hwmon: Do not accept invalid name attributes
hwmon name attributes must not include '-', as specified in
Documentation/hwmon/sysfs-interface. Also filter out spaces,
tabs, wildcards, and newline characters.
Tested-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/hwmon.c')
-rw-r--r-- | drivers/hwmon/hwmon.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c index e176a43af63d..a26c385a435b 100644 --- a/drivers/hwmon/hwmon.c +++ b/drivers/hwmon/hwmon.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/gfp.h> | 22 | #include <linux/gfp.h> |
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/pci.h> | 24 | #include <linux/pci.h> |
25 | #include <linux/string.h> | ||
25 | 26 | ||
26 | #define HWMON_ID_PREFIX "hwmon" | 27 | #define HWMON_ID_PREFIX "hwmon" |
27 | #define HWMON_ID_FORMAT HWMON_ID_PREFIX "%d" | 28 | #define HWMON_ID_FORMAT HWMON_ID_PREFIX "%d" |
@@ -99,6 +100,10 @@ hwmon_device_register_with_groups(struct device *dev, const char *name, | |||
99 | struct hwmon_device *hwdev; | 100 | struct hwmon_device *hwdev; |
100 | int err, id; | 101 | int err, id; |
101 | 102 | ||
103 | /* Do not accept invalid characters in hwmon name attribute */ | ||
104 | if (name && (!strlen(name) || strpbrk(name, "-* \t\n"))) | ||
105 | return ERR_PTR(-EINVAL); | ||
106 | |||
102 | id = ida_simple_get(&hwmon_ida, 0, 0, GFP_KERNEL); | 107 | id = ida_simple_get(&hwmon_ida, 0, 0, GFP_KERNEL); |
103 | if (id < 0) | 108 | if (id < 0) |
104 | return ERR_PTR(id); | 109 | return ERR_PTR(id); |