2002-02-26 21:11:48

by Shane Nay

[permalink] [raw]
Subject: Simple cyberjack diff

While looking around the usb code I noticed this semaphore problem in
cyberjack. Anyway, it's a quicky.

Thanks,
Shane Nay.

--- virgin/linux/drivers/usb/serial/cyberjack.c Fri Dec 21 09:41:55 2001
+++ linux/drivers/usb/serial/cyberjack.c Tue Feb 26 14:09:31 2002
@@ -238,7 +238,8 @@
if( (count+priv->wrfilled)>sizeof(priv->wrbuf) ) {
/* To much data for buffer. Reset buffer. */
priv->wrfilled=0;
- return (0);
+ count=0;
+ goto exit;
}

/* Copy data */
@@ -299,7 +300,7 @@
priv->wrsent=0;
}
}
-
+exit:
up (&port->sem);
return (count);
}


2002-02-27 04:23:33

by Greg KH

[permalink] [raw]
Subject: Re: Simple cyberjack diff

On Tue, Feb 26, 2002 at 02:16:35PM -0800, Shane Nay wrote:
> While looking around the usb code I noticed this semaphore problem in
> cyberjack. Anyway, it's a quicky.

Good catch. I'll add it to my 2.4 and 2.5 trees and push the changes
onward.

The same problem is also in the copy_from_user() test a few lines below
this one. I'll fix it.

thanks again,

greg k-h