Browse Source

[PATCH] USB: Fix race condition in usblp_write

Initialize status fields in the read and write urbs to prevent a race
condition with open/read/close - open/write/close sequences.

Fixes bug #4432 at bugzilla.kernel.org

Signed-off-by: Adam Oldham <oldhamca@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
C. Adam Oldham 20 years ago
parent
commit
2c45b6feb3
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/usb/class/usblp.c

+ 2 - 0
drivers/usb/class/usblp.c

@@ -379,6 +379,8 @@ static int usblp_open(struct inode *inode, struct file *file)
 	usblp->writeurb->transfer_buffer_length = 0;
 	usblp->wcomplete = 1; /* we begin writeable */
 	usblp->rcomplete = 0;
+	usblp->writeurb->status = 0;
+	usblp->readurb->status = 0;
 
 	if (usblp->bidir) {
 		usblp->readcount = 0;