Thread (4 messages) 4 messages, 2 authors, 2014-07-04
STALE4407d

[PATCH v3 3/8] component: add support for component match array

From: Russell King - ARM Linux <hidden>
Date: 2014-07-04 10:52:58
Subsystem: driver component framework, driver core, kobjects, debugfs and sysfs, the rest · Maintainers: Greg Kroah-Hartman, "Rafael J. Wysocki", Danilo Krummrich, Linus Torvalds

Possibly related (same subject, not in this thread)

On Fri, Jul 04, 2014 at 04:17:35PM +0530, Sachin Kamat wrote:
Hi Russell
quoted
+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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help