Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -744,11 +744,15 @@ static void acm_tty_flush_chars(struct tty_struct *tty)
	int err;
	unsigned long flags;

	if (!cur) /* nothing to do */
		return;

	acm->putbuffer = NULL;
	err = usb_autopm_get_interface_async(acm->control);
	spin_lock_irqsave(&acm->write_lock, flags);
	if (err < 0) {
		cur->use = 0;
		acm->putbuffer = cur;
		goto out;
	}