#ifndef US122L_H #define US122L_H struct us122l { struct usb_device *dev; int card_index; int stride; struct usb_stream_kernel sk; struct mutex mutex; struct file *first; unsigned second_periods_polled; struct file *master; struct file *slave; struct list_head midi_list; atomic_t mmap_count; }; #define US122L(c) ((struct us122l *)(c)->private_data) #define NAME_ALLCAPS "US-122L" #define USB_ID_US122L 0x800E #define USB_ID_US144 0x800F #define USB_ID_US122MKII 0x8021 #define USB_ID_US144MKII 0x8020 #endif it' title='net-next.git Git repository'/>
summaryrefslogtreecommitdiff
path: root/drivers/usb/wusbcore
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2017-01-14 19:33:08 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2017-01-14 19:50:41 -0500
commitb9dc6f65bc5e232d1c05fe34b5daadc7e8bbf1fb (patch)
treeca221e796b274a6c909db003fcda215156aa4cc7 /drivers/usb/wusbcore
parent4d22c75d4c7b5c5f4bd31054f09103ee490878fd (diff)
fix a fencepost error in pipe_advance()
The logics in pipe_advance() used to release all buffers past the new position failed in cases when the number of buffers to release was equal to pipe->buffers. If that happened, none of them had been released, leaving pipe full. Worse, it was trivial to trigger and we end up with pipe full of uninitialized pages. IOW, it's an infoleak. Cc: stable@vger.kernel.org # v4.9 Reported-by: "Alan J. Wylie" <alan@wylie.me.uk> Tested-by: "Alan J. Wylie" <alan@wylie.me.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/usb/wusbcore')