serial-uartlite: fix null pointer dereference on pointer port
Pointer port is dereferenced on port->private_data when assigning pointer
pdata before port is null checked, leading to a potential null pointer
dereference. Fix this by assigning pdata after the null pointer check on
port.
Detected by CoverityScan, CID#1475434 ("Dereference before null check")
Fixes: 3b209d253e
("serial-uartlite: Do not use static struct uart_driver out of probe()")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d491324f96
commit
ee0a29ba57
|
@ -694,10 +694,11 @@ static int ulite_assign(struct device *dev, int id, u32 base, int irq,
|
|||
static int ulite_release(struct device *dev)
|
||||
{
|
||||
struct uart_port *port = dev_get_drvdata(dev);
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
int rc = 0;
|
||||
|
||||
if (port) {
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
|
||||
rc = uart_remove_one_port(pdata->ulite_uart_driver, port);
|
||||
dev_set_drvdata(dev, NULL);
|
||||
port->mapbase = 0;
|
||||
|
@ -715,10 +716,12 @@ static int ulite_release(struct device *dev)
|
|||
static int __maybe_unused ulite_suspend(struct device *dev)
|
||||
{
|
||||
struct uart_port *port = dev_get_drvdata(dev);
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
|
||||
if (port)
|
||||
if (port) {
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
|
||||
uart_suspend_port(pdata->ulite_uart_driver, port);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -732,10 +735,12 @@ static int __maybe_unused ulite_suspend(struct device *dev)
|
|||
static int __maybe_unused ulite_resume(struct device *dev)
|
||||
{
|
||||
struct uart_port *port = dev_get_drvdata(dev);
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
|
||||
if (port)
|
||||
if (port) {
|
||||
struct uartlite_data *pdata = port->private_data;
|
||||
|
||||
uart_resume_port(pdata->ulite_uart_driver, port);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user