patch-2.4.7 linux/drivers/usb/mdc800.c
Next file: linux/drivers/usb/ov511.c
Previous file: linux/drivers/usb/inode.c
Back to the patch index
Back to the overall index
-  Lines: 33
-  Date:
Wed Jul  4 15:39:28 2001
-  Orig file: 
v2.4.6/linux/drivers/usb/mdc800.c
-  Orig date: 
Tue Jul  3 17:08:21 2001
diff -u --recursive --new-file v2.4.6/linux/drivers/usb/mdc800.c linux/drivers/usb/mdc800.c
@@ -716,6 +716,7 @@
 static ssize_t mdc800_device_write (struct file *file, const char *buf, size_t len, loff_t *pos)
 {
 	int i=0;
+	char c;
 
 	spin_lock (&mdc800->io_lock);
 	if (mdc800->state != READY)
@@ -738,7 +739,14 @@
 		}
 
 		/* check for command start */
-		if (buf [i] == (char) 0x55)
+		
+		if(get_user(c, buf+i))
+		{
+			spin_unlock (&mdc800->io_lock);
+			return -EFAULT;
+		}
+		
+		if (c == (char) 0x55)
 		{
 			mdc800->in_count=0;
 			mdc800->out_count=0;
@@ -749,7 +757,7 @@
 		/* save command byte */
 		if (mdc800->in_count < 8)
 		{
-			mdc800->in[mdc800->in_count]=buf[i];
+			mdc800->in[mdc800->in_count]=c;
 			mdc800->in_count++;
 		}
 		else
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)