hwmon: Do not accept invalid name attributes
authorGuenter Roeck <linux@roeck-us.net>
Fri, 28 Feb 2014 18:37:55 +0000 (10:37 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 3 Mar 2014 16:01:06 +0000 (08:01 -0800)
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>
drivers/hwmon/hwmon.c

index e176a43af63d7700a3f92753732cc16aabd08aeb..a26c385a435ba345d4cee632eca4fc5575188c68 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/gfp.h>
 #include <linux/spinlock.h>
 #include <linux/pci.h>
+#include <linux/string.h>
 
 #define HWMON_ID_PREFIX "hwmon"
 #define HWMON_ID_FORMAT HWMON_ID_PREFIX "%d"
@@ -99,6 +100,10 @@ hwmon_device_register_with_groups(struct device *dev, const char *name,
        struct hwmon_device *hwdev;
        int err, id;
 
+       /* Do not accept invalid characters in hwmon name attribute */
+       if (name && (!strlen(name) || strpbrk(name, "-* \t\n")))
+               return ERR_PTR(-EINVAL);
+
        id = ida_simple_get(&hwmon_ida, 0, 0, GFP_KERNEL);
        if (id < 0)
                return ERR_PTR(id);