]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mei: bus: fix received data size check in NFC fixup
authorAlexander Usyskin <alexander.usyskin@intel.com>
Mon, 31 Oct 2016 17:02:39 +0000 (19:02 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 23 Feb 2017 03:54:26 +0000 (03:54 +0000)
commit 582ab27a063a506ccb55fc48afcc325342a2deba upstream.

NFC version reply size checked against only header size, not against
full message size. That may lead potentially to uninitialized memory access
in version data.

That leads to warnings when version data is accessed:
drivers/misc/mei/bus-fixup.c: warning: '*((void *)&ver+11)' may be used uninitialized in this function [-Wuninitialized]:  => 212:2

Reported in
Build regressions/improvements in v4.9-rc3
https://lkml.org/lkml/2016/10/30/57

Fixes: 59fcd7c63abf (mei: nfc: Initial nfc implementation)
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.16:
 - Drop change in mei_phy.c
 - Adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/misc/mei/nfc.c

index 5ccc23bc76904a3b1dbe2770667e7aad502f96cf..b4d5cdda26cdab4017d9cd9cc6c81bcf67191c54 100644 (file)
@@ -292,7 +292,7 @@ static int mei_nfc_if_version(struct mei_nfc_dev *ndev)
                return -ENOMEM;
 
        bytes_recv = __mei_cl_recv(cl, (u8 *)reply, if_version_length);
-       if (bytes_recv < 0 || bytes_recv < sizeof(struct mei_nfc_reply)) {
+       if (bytes_recv < if_version_length) {
                dev_err(&dev->pdev->dev, "Could not read IF version\n");
                ret = -EIO;
                goto err;