[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <7d0481da-5852-4566-9adb-3a8bb74cb159@stanley.mountain>
Date: Thu, 31 Oct 2024 09:59:10 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Johan Hovold <johan@...nel.org>, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org
Subject: [PATCH] USB: serial: Fix use after free in debug printk
The dev_dbg() call dereferences "urb" but it was already freed on the
previous line. Move the debug output earlier in the function.
Fixes: 984f68683298 ("USB: serial: io_edgeport.c: remove dbg() usage")
Cc: stable@...r.kernel.org
Signed-off-by: Dan Carpenter <dan.carpenter@...aro.org>
---
drivers/usb/serial/io_edgeport.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index c7d6b5e3f898..b8f1bd41fb24 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -775,7 +775,10 @@ static void edge_bulk_out_cmd_callback(struct urb *urb)
atomic_dec(&CmdUrbs);
dev_dbg(&urb->dev->dev, "%s - FREE URB %p (outstanding %d)\n",
__func__, urb, atomic_read(&CmdUrbs));
-
+ if (status)
+ dev_dbg(&urb->dev->dev,
+ "%s - nonzero write bulk status received: %d\n",
+ __func__, status);
/* clean up the transfer buffer */
kfree(urb->transfer_buffer);
@@ -783,12 +786,8 @@ static void edge_bulk_out_cmd_callback(struct urb *urb)
/* Free the command urb */
usb_free_urb(urb);
- if (status) {
- dev_dbg(&urb->dev->dev,
- "%s - nonzero write bulk status received: %d\n",
- __func__, status);
+ if (status)
return;
- }
/* tell the tty driver that something has changed */
if (edge_port->open)
--
2.45.2
Powered by blists - more mailing lists