OSDN Git Service

mei: bus: type promotion bug in mei_fwver()
authorTomas Winkler <tomas.winkler@intel.com>
Wed, 11 Jul 2018 12:29:32 +0000 (15:29 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jul 2018 13:44:57 +0000 (15:44 +0200)
if __mei_cl_recv() returns a negative then "bytes_recv"
type is promoted to a high positive value in comparison with
size_t evaluated by MKHI_FWVER_LEN(1). It results in error condition
not to be detected.

Cc: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: 9078ad92ef86 ("mei: expose fw version to sysfs")
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/bus-fixup.c

index 65e28be..4c232f0 100644 (file)
@@ -181,7 +181,7 @@ static int mei_fwver(struct mei_cl_device *cldev)
        ret = 0;
        bytes_recv = __mei_cl_recv(cldev->cl, buf, sizeof(buf), 0,
                                   MKHI_RCV_TIMEOUT);
-       if (bytes_recv < MKHI_FWVER_LEN(1)) {
+       if (bytes_recv < 0 || bytes_recv < MKHI_FWVER_LEN(1)) {
                /*
                 * Should be at least one version block,
                 * error out if nothing found