dvb: unlock on error in dvb_ca_en50221_io_do_ioctl()
Subsystems (2)
A message that is not in the archive (sent off-list or not yet received): 50e3bfe0.IJT/Tw4ZVUbERlpE%[email protected]
PATCH 1/1 dvb: unlock on error in dvb_ca_en50221_io_do_ioctl()
We recently pushed the locking down into this function, but there was an error path where the unlock was missed.
Signed-off-by Dan Carpenter <[email protected]>
---
Only needed in linux-next.
drivers/media/dvb-core/dvb_ca_en50221.c +5 -2
@@ -1227,8 +1227,10 @@ static int dvb_ca_en50221_io_do_ioctl(struct file *file,case CA_GET_SLOT_INFO : {struct ca_slot_info *info = parg; -if ((info->num > ca->slot_count) || (info->num <0 )) -return -EINVAL ; +if ((info->num > ca->slot_count) || (info->num <0 )) { + err = -EINVAL ; + goto out_unlock; + } info->type =CA_CI_LINK ; info->flags =0 ;
@@ -1247,6 +1249,7 @@ static int dvb_ca_en50221_io_do_ioctl(struct file *file,break ; } +out_unlock:mutex_unlock (&ca->ioctl_mutex);return err; }
Quoted 2 lines · Dan Carpenter
We recently pushed the locking down into this function, but there was an error path where the unlock was missed.
Ugh, indeed. Thanks for catching this!
Nikolaus.