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 <[email protected]>
Fixes: 9078ad92ef86 ("mei: expose fw version to sysfs")
Signed-off-by: Tomas Winkler <[email protected]>
---
 drivers/misc/mei/bus-fixup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/mei/bus-fixup.c b/drivers/misc/mei/bus-fixup.c
index 65e28be3c8cc..4c232f0eae90 100644
--- a/drivers/misc/mei/bus-fixup.c
+++ b/drivers/misc/mei/bus-fixup.c
@@ -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
-- 
2.14.4

Reply via email to