summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorHaoran Liu <liuhaoran14@163.com>2023-12-03 22:00:23 +0300
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2023-12-03 22:04:34 +0300
commit59b6a747e2d39227ac2325c5e29d6ab3bb070c2a (patch)
treeeaa0389e7b23d9f5067dd1dbe95eadc39d8bd113 /drivers/input
parent42b8ff47720258d1f6a4412e780a480c139773a0 (diff)
downloadlinux-59b6a747e2d39227ac2325c5e29d6ab3bb070c2a.tar.xz
Input: ipaq-micro-keys - add error handling for devm_kmemdup
Check the return value of i2c_add_adapter. Static analysis revealed that the function did not properly handle potential failures of i2c_add_adapter, which could lead to partial initialization of the I2C adapter and unstable operation. Signed-off-by: Haoran Liu <liuhaoran14@163.com> Link: https://lore.kernel.org/r/20231203164653.38983-1-liuhaoran14@163.com Fixes: d7535ffa427b ("Input: driver for microcontroller keys on the iPaq h3xxx") Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyboard/ipaq-micro-keys.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/keyboard/ipaq-micro-keys.c b/drivers/input/keyboard/ipaq-micro-keys.c
index 7b509bce2b33..1d71dd79ffd2 100644
--- a/drivers/input/keyboard/ipaq-micro-keys.c
+++ b/drivers/input/keyboard/ipaq-micro-keys.c
@@ -105,6 +105,9 @@ static int micro_key_probe(struct platform_device *pdev)
keys->codes = devm_kmemdup(&pdev->dev, micro_keycodes,
keys->input->keycodesize * keys->input->keycodemax,
GFP_KERNEL);
+ if (!keys->codes)
+ return -ENOMEM;
+
keys->input->keycode = keys->codes;
__set_bit(EV_KEY, keys->input->evbit);