aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/hwmon.c
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2014-02-28 13:37:55 -0500
committerGuenter Roeck <linux@roeck-us.net>2014-03-03 11:01:06 -0500
commit648cd48c9e566f53c5df30d79857e0937ae13b09 (patch)
tree1fd88b546e0018249a91befa414730de0a9a553b /drivers/hwmon/hwmon.c
parent768821a302ae98c2d6a570e0ad63780180ba34db (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.c5
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);