mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 16:41:25 +00:00
NFC: nfcmrvl_uart: add missing tty-device sanity check
Make sure to check the tty-device pointer before trying to access the
parent device to avoid dereferencing a NULL-pointer when the tty is one
end of a Unix98 pty.
Fixes: e097dc624f
("NFC: nfcmrvl: add UART driver")
Cc: stable <stable@vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard@marvell.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
20777bc57c
commit
15e0c59f15
1 changed files with 4 additions and 4 deletions
|
@ -109,6 +109,7 @@ static int nfcmrvl_nci_uart_open(struct nci_uart *nu)
|
||||||
struct nfcmrvl_private *priv;
|
struct nfcmrvl_private *priv;
|
||||||
struct nfcmrvl_platform_data *pdata = NULL;
|
struct nfcmrvl_platform_data *pdata = NULL;
|
||||||
struct nfcmrvl_platform_data config;
|
struct nfcmrvl_platform_data config;
|
||||||
|
struct device *dev = nu->tty->dev;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Platform data cannot be used here since usually it is already used
|
* Platform data cannot be used here since usually it is already used
|
||||||
|
@ -116,9 +117,8 @@ static int nfcmrvl_nci_uart_open(struct nci_uart *nu)
|
||||||
* and check if DT entries were added.
|
* and check if DT entries were added.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (nu->tty->dev->parent && nu->tty->dev->parent->of_node)
|
if (dev && dev->parent && dev->parent->of_node)
|
||||||
if (nfcmrvl_uart_parse_dt(nu->tty->dev->parent->of_node,
|
if (nfcmrvl_uart_parse_dt(dev->parent->of_node, &config) == 0)
|
||||||
&config) == 0)
|
|
||||||
pdata = &config;
|
pdata = &config;
|
||||||
|
|
||||||
if (!pdata) {
|
if (!pdata) {
|
||||||
|
@ -131,7 +131,7 @@ static int nfcmrvl_nci_uart_open(struct nci_uart *nu)
|
||||||
}
|
}
|
||||||
|
|
||||||
priv = nfcmrvl_nci_register_dev(NFCMRVL_PHY_UART, nu, &uart_ops,
|
priv = nfcmrvl_nci_register_dev(NFCMRVL_PHY_UART, nu, &uart_ops,
|
||||||
nu->tty->dev, pdata);
|
dev, pdata);
|
||||||
if (IS_ERR(priv))
|
if (IS_ERR(priv))
|
||||||
return PTR_ERR(priv);
|
return PTR_ERR(priv);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue