aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/fw-cdev.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/firewire/fw-cdev.c b/drivers/firewire/fw-cdev.c
index 2784f91896db..160cb27e120c 100644
--- a/drivers/firewire/fw-cdev.c
+++ b/drivers/firewire/fw-cdev.c
@@ -742,9 +742,17 @@ static void release_descriptor(struct client *client,
742static int ioctl_add_descriptor(struct client *client, void *buffer) 742static int ioctl_add_descriptor(struct client *client, void *buffer)
743{ 743{
744 struct fw_cdev_add_descriptor *request = buffer; 744 struct fw_cdev_add_descriptor *request = buffer;
745 struct fw_card *card = client->device->card;
745 struct descriptor_resource *r; 746 struct descriptor_resource *r;
746 int ret; 747 int ret;
747 748
749 /* Access policy: Allow this ioctl only on local nodes' device files. */
750 spin_lock_irq(&card->lock);
751 ret = client->device->node_id != card->local_node->node_id;
752 spin_unlock_irq(&card->lock);
753 if (ret)
754 return -ENOSYS;
755
748 if (request->length > 256) 756 if (request->length > 256)
749 return -EINVAL; 757 return -EINVAL;
750 758