diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-07-04 08:23:46 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-07-04 13:05:05 -0400 |
commit | b509cc802239a8b5ba7d1d2cc5adfb9d984b7ed8 (patch) | |
tree | 476a3a78ff7da58a89b713595945d0946963f3b7 /drivers/base | |
parent | 6955b58254c2bcee8a7b55ce06468a645dc98ec5 (diff) |
component: fix bug with legacy API
Sachin Kamat reports that "component: add support for component match
array" broke Exynos DRM due to a NULL pointer deref. Fix this.
Reported-by: Sachin Kamat <sachin.kamat@samsung.com>
Tested-by: Sachin Kamat <sachin.kamat@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/component.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/base/component.c b/drivers/base/component.c index b4236daed4fa..f748430bb654 100644 --- a/drivers/base/component.c +++ b/drivers/base/component.c | |||
@@ -293,10 +293,12 @@ int component_master_add_with_match(struct device *dev, | |||
293 | if (ops->add_components && match) | 293 | if (ops->add_components && match) |
294 | return -EINVAL; | 294 | return -EINVAL; |
295 | 295 | ||
296 | /* Reallocate the match array for its true size */ | 296 | if (match) { |
297 | match = component_match_realloc(dev, match, match->num); | 297 | /* Reallocate the match array for its true size */ |
298 | if (IS_ERR(match)) | 298 | match = component_match_realloc(dev, match, match->num); |
299 | return PTR_ERR(match); | 299 | if (IS_ERR(match)) |
300 | return PTR_ERR(match); | ||
301 | } | ||
300 | 302 | ||
301 | master = kzalloc(sizeof(*master), GFP_KERNEL); | 303 | master = kzalloc(sizeof(*master), GFP_KERNEL); |
302 | if (!master) | 304 | if (!master) |