ret = -EOPNOTSUPP;
                } else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
                           (msg[0].addr == state->af9033_i2c_addr[1])) {
+                       if (msg[0].len < 3 || msg[1].len < 1)
+                               return -EOPNOTSUPP;
                        /* demod access via firmware interface */
                        u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
                        ret = -EOPNOTSUPP;
                } else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
                           (msg[0].addr == state->af9033_i2c_addr[1])) {
+                       if (msg[0].len < 3)
+                               return -EOPNOTSUPP;
                        /* demod access via firmware interface */
                        u32 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;
 
-                       ret = (msg[0].len >= 3) ? af9035_wr_regs(d, reg,
-                                                                &msg[0].buf[3],
-                                                                msg[0].len - 3)
-                                               : -EOPNOTSUPP;
+                       ret = af9035_wr_regs(d, reg, &msg[0].buf[3], msg[0].len - 3);
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];