media: ngene: Add dvb_ca_en50221_init return value check
authorAleksandr Burakov <a.burakov@rosalinux.ru>
Fri, 1 Mar 2024 11:15:53 +0000 (14:15 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 8 Apr 2024 11:48:18 +0000 (13:48 +0200)
The return value of dvb_ca_en50221_init() is not checked here that may
cause undefined behavior in case of nonzero value return.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 25aee3debe04 ("[media] Rename media/dvb as media/pci")
Signed-off-by: Aleksandr Burakov <a.burakov@rosalinux.ru>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/pci/ngene/ngene-core.c

index 7481f553f95958c4eaea090a374e22021fcceaa1..24ec576dc3bff57871b302548a37af5a05215465 100644 (file)
@@ -1488,7 +1488,9 @@ static int init_channel(struct ngene_channel *chan)
        }
 
        if (dev->ci.en && (io & NGENE_IO_TSOUT)) {
-               dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1);
+               ret = dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1);
+               if (ret != 0)
+                       goto err;
                set_transfer(chan, 1);
                chan->dev->channel[2].DataFormatFlags = DF_SWAP32;
                set_transfer(&chan->dev->channel[2], 1);