Ian Abbott
00d6058ac9
[PATCH] USB serial visor: fix race in open/close
...
The anti user-DoS mechanism in the USB serial 'visor' driver can fail in
the following way:
visor_open: priv->outstanding_urbs = 0
visor_write: ++priv->outstanding_urbs
visor_close:
visor_open: priv->outstanding_urbs = 0
visor_write_bulk_callback: --priv->outstanding_urbs
So priv->outstanding_urbs ends up as (unsigned long)(-1). Not good!
I haven't seen this happen with the visor driver as I don't have the
hardware, but I have seen it while testing a patch to implement the same
functionality in the ftdi_sio driver (patch not yet submitted).
The fix is pretty simple: don't reinitialize outstanding_urbs in
visor_open. (Again, I haven't tested the fix in visor, but I have
tested it in ftdi_sio.)
Signed-off-by: Ian Abbott <abbotti@mev.co.uk >
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de >
2006-07-12 16:03:22 -07:00
..
2006-06-21 15:04:16 -07:00
2006-01-04 13:48:34 -08:00
2006-05-12 11:58:09 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-11-17 11:29:52 -08:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2006-03-20 14:50:00 -08:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2006-07-12 16:03:21 -07:00
2006-07-12 16:03:21 -07:00
2006-04-14 11:12:27 -07:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2006-01-04 13:51:43 -08:00
2006-01-04 13:51:40 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-10-28 16:47:48 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2005-05-03 23:31:52 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-06-21 15:04:13 -07:00
2006-06-30 19:25:36 +02:00
2006-06-21 15:04:16 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-05-03 23:31:52 -07:00
2006-06-30 19:25:36 +02:00
2006-01-04 13:48:34 -08:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-05-12 11:58:09 -07:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-03-20 14:50:03 -08:00
2006-06-30 19:25:36 +02:00
2006-06-30 19:25:36 +02:00
2006-07-12 16:03:21 -07:00
2006-07-12 16:03:21 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2006-07-12 16:03:21 -07:00
2006-06-30 19:25:36 +02:00
2006-07-12 16:03:22 -07:00
2006-02-28 12:42:07 -08:00
2005-04-16 15:20:36 -07:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00