DM04/QQBOX v1.85 usb_buffer and mutex.
PATCH 1/2 DM04/QQBOX v1.85 usb_buffer and mutex.
usb_buffer not inside mutex lock, waiting caller can alter buffer.
Static added to lme2510_exit and lme2510_exit_int.
Signed-off-by Malcolm Priestley <[email protected]>
--- drivers/media/dvb/dvb-usb/lmedm04.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
drivers/media/dvb/dvb-usb/lmedm04.c +6 -6
@@ -169,14 +169,14 @@ static int lme2510_usb_talk(struct dvb_usb_device *d, } buff = st->usb_buffer; -/* the read/write capped at 512 */ -memcpy (buff, wbuf, (wlen >512 ) ?512 : wlen); - ret =mutex_lock_interruptible (&d->usb_mutex);if (ret <0 )return -EAGAIN ; +/* the read/write capped at 512 */ +memcpy (buff, wbuf, (wlen >512 ) ?512 : wlen); + ret |=usb_clear_halt (d->udev,usb_sndbulkpipe (d->udev,0x01 )); ret |=lme2510_bulk_write (d->udev, buff, wlen ,0x01 );
@@ -1234,7 +1234,7 @@ static struct dvb_usb_device_properties lme2510c_properties = { } }; -void *lme2510_exit_int (struct dvb_usb_device *d) +static void *lme2510_exit_int (struct dvb_usb_device *d) {struct lme2510_state *st = d->priv;struct dvb_usb_adapter *adap = &d->adapter[0 ];
@@ -1261,7 +1261,7 @@ void *lme2510_exit_int(struct dvb_usb_device *d)return buffer; } -void lme2510_exit (struct usb_interface *intf) +static void lme2510_exit (struct usb_interface *intf) {struct dvb_usb_device *d =usb_get_intfdata (intf);void *usb_buffer;
@@ -1303,5 +1303,5 @@ module_exit(lme2510_module_exit);MODULE_AUTHOR ("Malcolm Priestley <[email protected]>" );MODULE_DESCRIPTION ("LME2510(C) DVB-S USB2.0" ); -MODULE_VERSION ("1.84" ); +MODULE_VERSION ("1.85" );MODULE_LICENSE ("GPL" );
Signature · 1 line
1.7.4.1