Skip to content

Commit

Permalink
Input: adp5589-keys - fix NULL pointer dereference
Browse files Browse the repository at this point in the history
We register a devm action to call adp5589_clear_config() and then pass
the i2c client as argument so that we can call i2c_get_clientdata() in
order to get our device object. However, i2c_set_clientdata() is only
being set at the end of the probe function which means that we'll get a
NULL pointer dereference in case the probe function fails early.

Fixes: 30df385 ("Input: adp5589-keys - use devm_add_action_or_reset() for register clear")
Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20241001-b4-dev-adp5589-fw-conversion-v1-1-fca0149dfc47@analog.com
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
  • Loading branch information
nunojsa authored and dtor committed Oct 1, 2024
1 parent a3f9a74 commit fb5cc65
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions drivers/input/keyboard/adp5589-keys.c
Original file line number Diff line number Diff line change
Expand Up @@ -936,10 +936,9 @@ static int adp5589_keypad_add(struct adp5589_kpad *kpad, unsigned int revid)

static void adp5589_clear_config(void *data)
{
struct i2c_client *client = data;
struct adp5589_kpad *kpad = i2c_get_clientdata(client);
struct adp5589_kpad *kpad = data;

adp5589_write(client, kpad->var->reg(ADP5589_GENERAL_CFG), 0);
adp5589_write(kpad->client, kpad->var->reg(ADP5589_GENERAL_CFG), 0);
}

static int adp5589_probe(struct i2c_client *client)
Expand Down Expand Up @@ -983,7 +982,7 @@ static int adp5589_probe(struct i2c_client *client)
}

error = devm_add_action_or_reset(&client->dev, adp5589_clear_config,
client);
kpad);
if (error)
return error;

Expand All @@ -1010,8 +1009,6 @@ static int adp5589_probe(struct i2c_client *client)
if (error)
return error;

i2c_set_clientdata(client, kpad);

dev_info(&client->dev, "Rev.%d keypad, irq %d\n", revid, client->irq);
return 0;
}
Expand Down

0 comments on commit fb5cc65

Please sign in to comment.