[PATCH] Input: iqs7222 - avoid dereferencing a NULL pointer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Select callers of iqs7222_parse_props() do not expect a child node
to be derived and returned via pointer. As such, these callers set
**child_node to NULL. However, this pointer is dereferenced in all
cases.

To solve this problem, dereference the pointer only for cases that
expect a child node in the first place. In these cases, the caller
provides a valid pointer.

Fixes: e505edaedcb9 ("Input: add support for Azoteq IQS7222A/B/C")
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Jeff LaBundy <jeff@xxxxxxxxxxx>
---
 drivers/input/misc/iqs7222.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/input/misc/iqs7222.c b/drivers/input/misc/iqs7222.c
index c0b273222092..6b4138771a3f 100644
--- a/drivers/input/misc/iqs7222.c
+++ b/drivers/input/misc/iqs7222.c
@@ -1534,8 +1534,8 @@ static int iqs7222_parse_props(struct iqs7222_private *iqs7222,
 			       enum iqs7222_reg_key_id reg_key)
 {
 	u16 *setup = iqs7222_setup(iqs7222, reg_grp, child_index);
-	struct fwnode_handle *reg_grp_node = *child_node;
 	struct i2c_client *client = iqs7222->client;
+	struct fwnode_handle *reg_grp_node;
 	char reg_grp_name[16];
 	int i;
 
@@ -1550,7 +1550,8 @@ static int iqs7222_parse_props(struct iqs7222_private *iqs7222,
 		 * for additional group-specific processing. In some cases, the
 		 * child node may have already been derived.
 		 */
-		if (*child_node)
+		reg_grp_node = *child_node;
+		if (reg_grp_node)
 			break;
 
 		snprintf(reg_grp_name, sizeof(reg_grp_name), "%s-%d",
-- 
2.25.1




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux