ChangeSet 1.1207, 2003/06/18 16:30:13-07:00, [EMAIL PROTECTED] [PATCH] USB speedtouch: discard packets for non-existant vcc's
I broke part of the udsl_decode_rawcell logic in a previous patch, leading to possible hangs on startup/shutdown. Thanks to Subodh Srivastava and Ted Phelps for their bug reports. drivers/usb/speedtouch.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff -Nru a/drivers/usb/speedtouch.c b/drivers/usb/speedtouch.c --- a/drivers/usb/speedtouch.c Wed Jun 18 17:36:28 2003 +++ b/drivers/usb/speedtouch.c Wed Jun 18 17:36:28 2003 @@ -278,9 +278,10 @@ /* here should the header CRC check be... */ - if (!(vcc = udsl_find_vcc (instance, vpi, vci))) + if (!(vcc = udsl_find_vcc (instance, vpi, vci))) { dbg ("udsl_decode_rawcell: no vcc found for packet on vpi %d, vci %d", vpi, vci); - else { + __skb_pull (skb, min (skb->len, (unsigned) 53)); + } else { dbg ("udsl_decode_rawcell found vcc %p for packet on vpi %d, vci %d", vcc, vpi, vci); if (skb->len >= 53) { @@ -323,8 +324,8 @@ skb_pull (skb, 53); } else { /* If data is corrupt and skb doesn't hold a whole cell, flush the lot */ - if (skb_pull (skb, 53) == NULL) - return NULL; + __skb_pull (skb, skb->len); + return NULL; } } } ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel