Commit 66ab05c7 authored by Jeff LaBundy's avatar Jeff LaBundy Committed by Dmitry Torokhov
Browse files

Input: iqs7222 - avoid dereferencing a NULL pointer



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: e505edae ("Input: add support for Azoteq IQS7222A/B/C")
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarJeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20220417214132.497487-1-jeff@labundy.com


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent eba697b3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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",