Commit 15e0c59f authored by Johan Hovold's avatar Johan Hovold Committed by Samuel Ortiz

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: e097dc62 ("NFC: nfcmrvl: add UART driver")
Cc: stable <stable@vger.kernel.org>     # 4.2
Cc: Vincent Cuissard <cuissard@marvell.com>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 20777bc5
...@@ -109,6 +109,7 @@ static int nfcmrvl_nci_uart_open(struct nci_uart *nu) ...@@ -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) ...@@ -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) ...@@ -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);
......
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