On Mon, Oct 29, 2007 at 03:53:14AM -0400, Jeff Garzik wrote:
>
>  You would also want to kfree(hidinput) on failure too.

Oops, of course. Thanks for catching that. Here's the updated patch

/D


[INPUT] hidinput_connect incorrectly ignored return value from 
input_register_device

Signed-off-by: Dirk Hohndel <[EMAIL PROTECTED]>

---
 drivers/hid/hid-input.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index dd332f2..880161b 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1186,13 +1186,21 @@ int hidinput_connect(struct hid_device *hid)
                                 * UGCI) cram a lot of unrelated inputs into the
                                 * same interface. */
                                hidinput->report = report;
-                               input_register_device(hidinput->input);
+                               if (input_register_device(hidinput->input)) {
+                                       input_free_device(hidinput->input);
+                                       kfree(hidinput);
+                                       return -1;
+                               }
                                hidinput = NULL;
                        }
                }
 
        if (hidinput)
-               input_register_device(hidinput->input);
+               if (input_register_device(hidinput->input)) {
+                       input_free_device(hidinput->input);
+                       kfree(hidinput);
+                       return -1;
+               }
 
        return 0;
 }
-- 
gitgui.0.8.4.g8d863


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to