| From d97aa2ed11b9a82ffc82c66f6e4b53d30db46356 Mon Sep 17 00:00:00 2001 |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Date: Wed, 4 Dec 2019 04:35:25 +0100 |
| Subject: [PATCH] HID: alps: Fix an error handling path in |
| 'alps_input_configured()' |
| |
| commit 8d2e77b39b8fecb794e19cd006a12f90b14dd077 upstream. |
| |
| They are issues: |
| - if 'input_allocate_device()' fails and return NULL, there is no need |
| to free anything and 'input_free_device()' call is a no-op. It can |
| be axed. |
| - 'ret' is known to be 0 at this point, so we must set it to a |
| meaningful value before returning |
| |
| Fixes: 2562756dde55 ("HID: add Alps I2C HID Touchpad-Stick support") |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/hid/hid-alps.c b/drivers/hid/hid-alps.c |
| index ae79a7c66737..fa704153cb00 100644 |
| --- a/drivers/hid/hid-alps.c |
| +++ b/drivers/hid/hid-alps.c |
| @@ -730,7 +730,7 @@ static int alps_input_configured(struct hid_device *hdev, struct hid_input *hi) |
| if (data->has_sp) { |
| input2 = input_allocate_device(); |
| if (!input2) { |
| - input_free_device(input2); |
| + ret = -ENOMEM; |
| goto exit; |
| } |
| |
| -- |
| 2.7.4 |
| |