Hi,
Here's a patch from Al Borchers to fix the copy_*_user bug that Dawson
Engler found in the digi_acceleport driver. It is against 2.4.3-pre4.
thanks,
greg k-h
--
greg@(kroah|wirex).com
diff -Naur -X dontdiff linux-2.4.3-pre4/drivers/usb/serial/digi_acceleport.c
linux-2.4.3-pre4-greg/drivers/usb/serial/digi_acceleport.c
--- linux-2.4.3-pre4/drivers/usb/serial/digi_acceleport.c Thu Feb 22 23:43:26
2001
+++ linux-2.4.3-pre4-greg/drivers/usb/serial/digi_acceleport.c Fri Mar 16 17:56:34
+2001
@@ -1282,12 +1282,10 @@
|| priv->dp_write_urb_in_use ) {
/* buffer data if count is 1 (probably put_char) if possible */
- if( count == 1 ) {
- new_len = MIN( count,
- DIGI_OUT_BUF_SIZE-priv->dp_out_buf_len );
- memcpy( priv->dp_out_buf+priv->dp_out_buf_len, buf,
- new_len );
- priv->dp_out_buf_len += new_len;
+ if( count == 1 && priv->dp_out_buf_len < DIGI_OUT_BUF_SIZE ) {
+ priv->dp_out_buf[priv->dp_out_buf_len++]
+ = *(from_user ? user_buf : buf);
+ new_len = 1;
} else {
new_len = 0;
}