Commit 2a14759a authored by Oliver Neukum's avatar Oliver Neukum Committed by Greg Kroah-Hartman

cdc-acm: fix crash if flushed with nothing buffered

Under some circumstances acm_tty_flush_chars() is called
with no buffer to flush. We simply need to do nothing.
Signed-off-by: default avatarOliver Neukum <ONeukum@suse.com>
Reported-by: default avatarTorsten Hilbrich <torsten.hilbrich@secunet.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bf162006
...@@ -744,11 +744,15 @@ static void acm_tty_flush_chars(struct tty_struct *tty) ...@@ -744,11 +744,15 @@ static void acm_tty_flush_chars(struct tty_struct *tty)
int err; int err;
unsigned long flags; unsigned long flags;
if (!cur) /* nothing to do */
return;
acm->putbuffer = NULL; acm->putbuffer = NULL;
err = usb_autopm_get_interface_async(acm->control); err = usb_autopm_get_interface_async(acm->control);
spin_lock_irqsave(&acm->write_lock, flags); spin_lock_irqsave(&acm->write_lock, flags);
if (err < 0) { if (err < 0) {
cur->use = 0; cur->use = 0;
acm->putbuffer = cur;
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment