| From fe202fe95564023223ce1910c9e352f391abb1d5 Mon Sep 17 00:00:00 2001 |
| From: Christophe Ricard <christophe.ricard@gmail.com> |
| Date: Fri, 14 Aug 2015 22:33:40 +0200 |
| Subject: nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA |
| |
| From: Christophe Ricard <christophe.ricard@gmail.com> |
| |
| commit fe202fe95564023223ce1910c9e352f391abb1d5 upstream. |
| |
| NFC_ATTR_VENDOR_DATA is an optional vendor_cmd argument. |
| The current code was potentially using a non existing argument |
| leading to potential catastrophic results. |
| |
| Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> |
| Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/nfc/netlink.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/nfc/netlink.c |
| +++ b/net/nfc/netlink.c |
| @@ -1518,8 +1518,8 @@ static int nfc_genl_vendor_cmd(struct sk |
| if (!dev || !dev->vendor_cmds || !dev->n_vendor_cmds) |
| return -ENODEV; |
| |
| - data = nla_data(info->attrs[NFC_ATTR_VENDOR_DATA]); |
| - if (data) { |
| + if (info->attrs[NFC_ATTR_VENDOR_DATA]) { |
| + data = nla_data(info->attrs[NFC_ATTR_VENDOR_DATA]); |
| data_len = nla_len(info->attrs[NFC_ATTR_VENDOR_DATA]); |
| if (data_len == 0) |
| return -EINVAL; |