]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: dvb-usb-v2: af9035: fix ISO C90 compilation error on af9035_i2c_master_xfer
authorDesnes Nunes <desnesn@redhat.com>
Thu, 19 Sep 2024 17:27:55 +0000 (14:27 -0300)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 8 Jan 2025 14:57:01 +0000 (14:57 +0000)
This fixes a 'ISO C90 forbids mixed declarations and code' compilation
error on af9035_i2c_master_xfer, which is caused by the sanity check added
on user controlled msg[i], before declaring the demodulator register.

Fixes: 7bf744f2de0a ("media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer")
Signed-off-by: Desnes Nunes <desnesn@redhat.com>
Link: https://lore.kernel.org/r/20240919172755.196907-1-desnesn@redhat.com
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/usb/dvb-usb-v2/af9035.c

index 0d2c42819d390971d95246663d70f257bf871ae4..218f712f56b17c2e50d83700f025237cc0321bde 100644 (file)
@@ -322,13 +322,16 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        ret = -EOPNOTSUPP;
                } else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
                           (msg[0].addr == state->af9033_i2c_addr[1])) {
+                       /* demod access via firmware interface */
+                       u32 reg;
+
                        if (msg[0].len < 3 || msg[1].len < 1) {
                                ret = -EOPNOTSUPP;
                                goto unlock;
                        }
-                       /* demod access via firmware interface */
-                       u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
-                                       msg[0].buf[2];
+
+                       reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
+                               msg[0].buf[2];
 
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
@@ -385,13 +388,16 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        ret = -EOPNOTSUPP;
                } else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
                           (msg[0].addr == state->af9033_i2c_addr[1])) {
+                       /* demod access via firmware interface */
+                       u32 reg;
+
                        if (msg[0].len < 3) {
                                ret = -EOPNOTSUPP;
                                goto unlock;
                        }
-                       /* demod access via firmware interface */
-                       u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
-                                       msg[0].buf[2];
+
+                       reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
+                               msg[0].buf[2];
 
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;