| From ecc87eed7beeb50c0be0b73322d62135277ea2b0 Mon Sep 17 00:00:00 2001 |
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Date: Wed, 5 Aug 2015 16:51:11 +0300 |
| Subject: device property: fix potential NULL pointer dereference |
| |
| From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| |
| commit ecc87eed7beeb50c0be0b73322d62135277ea2b0 upstream. |
| |
| In device_add_property_set() we check pset parameter for a NULL, but few lines |
| later we do a pointer arithmetic without check that will crash kernel in the |
| set_secondary_fwnode(). |
| |
| Here we check if pset parameter is NULL and return immediately. |
| |
| Fixes: 16ba08d5c9ec (device property: Introduce firmware node type for platform data) |
| Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/base/property.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/base/property.c |
| +++ b/drivers/base/property.c |
| @@ -27,9 +27,10 @@ |
| */ |
| void device_add_property_set(struct device *dev, struct property_set *pset) |
| { |
| - if (pset) |
| - pset->fwnode.type = FWNODE_PDATA; |
| + if (!pset) |
| + return; |
| |
| + pset->fwnode.type = FWNODE_PDATA; |
| set_secondary_fwnode(dev, &pset->fwnode); |
| } |
| EXPORT_SYMBOL_GPL(device_add_property_set); |