firewire: cdev: fix another memory leak in an error path
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 26 Dec 2009 00:34:29 +0000 (01:34 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 29 Dec 2009 18:58:16 +0000 (19:58 +0100)
If copy_from_user in an FW_CDEV_IOC_SEND_RESPONSE ioctl failed, the
fw_request pointed to by the inbound_transaction_resource is no
longer referenced and needs to be freed.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/core-cdev.c

index 2cb22d160f6e534a58a2b8d74931e99151150100..e6d63849e78ee44302e436c26f871e5b3dd3eef7 100644 (file)
@@ -723,6 +723,7 @@ static int ioctl_send_response(struct client *client, void *buffer)
                if (copy_from_user(r->data, u64_to_uptr(request->data),
                                   r->length)) {
                        ret = -EFAULT;
+                       kfree(r->request);
                        goto out;
                }
                fw_send_response(client->device->card, r->request,