]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
power: supply: Add error checking of psy desc during registration
authorAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Mon, 23 Apr 2018 14:10:58 +0000 (15:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2018 12:17:48 +0000 (14:17 +0200)
Currently there's no error checking of this parameter in the
registration function and it's blindly added to psy class and
subsequently used as is. For example if this is NULL the call
to psy_register_thermal() will try to dereference the pointer
thus causing a kernel dump.

This commit updates the registration code to add some basic
checks on the desc pointer validity, name, and presence of
properties.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/power/supply/power_supply_core.c

index feac7b066e6c4f4894aabd60dd3a2b57bc7b6a8a..a7984af1dc66736aed809cf5c7905bddff326b30 100644 (file)
@@ -849,6 +849,9 @@ __power_supply_register(struct device *parent,
                pr_warn("%s: Expected proper parent device for '%s'\n",
                        __func__, desc->name);
 
+       if (!desc || !desc->name || !desc->properties || !desc->num_properties)
+               return ERR_PTR(-EINVAL);
+
        psy = kzalloc(sizeof(*psy), GFP_KERNEL);
        if (!psy)
                return ERR_PTR(-ENOMEM);