firewire: cdev: fix another memory leak in an error path
Stefan Richter [Sat, 26 Dec 2009 00:34:29 +0000 (01:34 +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 2cb22d1..e6d6384 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,