media: cec: extron-da-hd-4k-plus: don't use -1 as an error code
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 16 Oct 2024 09:03:26 +0000 (11:03 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 18 Oct 2024 08:43:03 +0000 (10:43 +0200)
The logic at get_edid_tag_location() returns either an offset
or an error condition. However, the error condition uses a
non-standard "-1" value. This hits a Coverity bug, as Coverity
assumes that positive values are underflow. While this is a
false positive, returning error codes as -1 is an issue.

So, instead, use -ENOENT to indicate that the tag was not found.

Fixes: 056f2821b631 ("media: cec: extron-da-hd-4k-plus: add the Extron DA HD 4K Plus CEC driver")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c

index 8526f613a40ef45878458f5d080890dc6d209c09..cfbfc4c1b2e67fec9434aa6852ab465ad8c11225 100644 (file)
@@ -348,12 +348,12 @@ static int get_edid_tag_location(const u8 *edid, unsigned int size,
 
        /* Return if not a CTA-861 extension block */
        if (size < 256 || edid[0] != 0x02 || edid[1] != 0x03)
-               return -1;
+               return -ENOENT;
 
        /* search tag */
        d = edid[0x02] & 0x7f;
        if (d <= 4)
-               return -1;
+               return -ENOENT;
 
        i = 0x04;
        end = 0x00 + d;
@@ -371,7 +371,7 @@ static int get_edid_tag_location(const u8 *edid, unsigned int size,
                        return offset + i;
                i += len + 1;
        } while (i < end);
-       return -1;
+       return -ENOENT;
 }
 
 static void extron_edid_crc(u8 *edid)