]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
USB: serial: digi_acceleport: fix OOB-event processing
authorJohan Hovold <johan@kernel.org>
Fri, 24 Feb 2017 18:11:28 +0000 (19:11 +0100)
committerTim Gardner <tim.gardner@canonical.com>
Mon, 20 Mar 2017 11:24:55 +0000 (05:24 -0600)
BugLink: http://bugs.launchpad.net/bugs/1674288
commit 2e46565cf622dd0534a9d8bffe152a577b48d7aa upstream.

A recent change claimed to fix an off-by-one error in the OOB-port
completion handler, but instead introduced such an error. This could
specifically led to modem-status changes going unnoticed, effectively
breaking TIOCMGET.

Note that the offending commit fixes a loop-condition underflow and is
marked for stable, but should not be backported without this fix.

Reported-by: Ben Hutchings <ben@decadent.org.uk>
Fixes: 2d380889215f ("USB: serial: digi_acceleport: fix OOB data sanity
check")
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/usb/serial/digi_acceleport.c

index 3b610f1e3f7c1b9cad077a396fcf89dbf1991ee3..30bf0f5db82d3b0aeb1ecdf73f656f5feb7c1125 100644 (file)
@@ -1491,7 +1491,7 @@ static int digi_read_oob_callback(struct urb *urb)
                return -1;
 
        /* handle each oob command */
-       for (i = 0; i < urb->actual_length - 4; i += 4) {
+       for (i = 0; i < urb->actual_length - 3; i += 4) {
                opcode = buf[i];
                line = buf[i + 1];
                status = buf[i + 2];