ALSA: cs4236: fix error return comparison of an unsigned integer
authorColin Ian King <colin.king@canonical.com>
Fri, 22 Nov 2019 13:13:54 +0000 (13:13 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2020 09:19:02 +0000 (10:19 +0100)
commit d60229d84846a8399257006af9c5444599f64361 upstream.

The return from pnp_irq is an unsigned integer type resource_size_t
and hence the error check for a positive non-error code is always
going to be true.  A check for a non-failure return from pnp_irq
should in fact be for (resource_size_t)-1 rather than >= 0.

Addresses-Coverity: ("Unsigned compared against 0")
Fixes: a9824c868a2c ("[ALSA] Add CS4232 PnP BIOS support")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20191122131354.58042-1-colin.king@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/isa/cs423x/cs4236.c

index 70559e5..7d4e18c 100644 (file)
@@ -293,7 +293,8 @@ static int snd_cs423x_pnp_init_mpu(int dev, struct pnp_dev *pdev)
        } else {
                mpu_port[dev] = pnp_port_start(pdev, 0);
                if (mpu_irq[dev] >= 0 &&
-                   pnp_irq_valid(pdev, 0) && pnp_irq(pdev, 0) >= 0) {
+                   pnp_irq_valid(pdev, 0) &&
+                   pnp_irq(pdev, 0) != (resource_size_t)-1) {
                        mpu_irq[dev] = pnp_irq(pdev, 0);
                } else {
                        mpu_irq[dev] = -1;      /* disable interrupt */