]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
USB: serial: keyspan_pda: fix information leak
authorJohan Hovold <johan@kernel.org>
Mon, 29 Jun 2026 12:45:26 +0000 (14:45 +0200)
committerJohan Hovold <johan@kernel.org>
Tue, 30 Jun 2026 08:36:06 +0000 (10:36 +0200)
The write() callback is supposed to return the number of characters
accepted or a negative errno. Since the addition of write fifo support
the keyspan_pda implementation will however return the number characters
submitted to the device if the write urb is not already in use. If this
number is larger than the number of characters passed to write(), the
line discipline continues writing data from beyond the tty write buffer.

Fix the information leak by making sure that keyspan_pda_write_start()
returns zero on success as intended.

Fixes: 034e38e8f687 ("USB: serial: keyspan_pda: add write-fifo support")
Cc: stable@vger.kernel.org # 5.11
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/keyspan_pda.c

index 3b99f9676c35200f65fd63c354bf5dba9bd7fe6d..f05bcce6060029e52f72abf01aa6224f52b3e7fd 100644 (file)
@@ -516,7 +516,7 @@ static int keyspan_pda_write_start(struct usb_serial_port *port)
        if (count == room)
                schedule_work(&priv->unthrottle_work);
 
-       return count;
+       return 0;
 }
 
 static void keyspan_pda_write_bulk_callback(struct urb *urb)