[PATCH v3 3/8] component: add support for component match array
Russell King - ARM Linux
linux at arm.linux.org.uk
Fri Jul 4 03:52:58 PDT 2014
On Fri, Jul 04, 2014 at 04:17:35PM +0530, Sachin Kamat wrote:
> Hi Russell
>
> > +int component_master_add_with_match(struct device *dev,
> > + const struct component_master_ops *ops,
> > + struct component_match *match)
> > {
> > struct master *master;
> > int ret;
> >
> > + if (ops->add_components && match)
> > + return -EINVAL;
> > +
> > + /* Reallocate the match array for its true size */
> > + match = component_match_realloc(dev, match, match->num);
>
> ^^^^^^^^^^^^^
> This gives a NULL pointer dereference error when match is NULL (as passed
> by component_master_add() below). Observed this while testing linux-next
> kernel (next-20140704) on Exynos based board with DRM enabled.
Thanks for your report. Please verify that the patch below resolves it
for you. Thanks.
drivers/base/component.c | 10 ++++++----
1 file 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,
if (ops->add_components && match)
return -EINVAL;
- /* Reallocate the match array for its true size */
- match = component_match_realloc(dev, match, match->num);
- if (IS_ERR(match))
- return PTR_ERR(match);
+ if (match) {
+ /* Reallocate the match array for its true size */
+ match = component_match_realloc(dev, match, match->num);
+ if (IS_ERR(match))
+ return PTR_ERR(match);
+ }
master = kzalloc(sizeof(*master), GFP_KERNEL);
if (!master)
--
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
More information about the linux-arm-kernel
mailing list