]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fix up media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Sep 2023 07:36:28 +0000 (09:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Sep 2023 07:36:28 +0000 (09:36 +0200)
queue-4.14/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
queue-4.19/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
queue-5.10/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
queue-5.15/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
queue-5.4/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch
queue-6.1/media-dvb-usb-v2-af9035-fix-null-ptr-deref-in-af9035.patch

index fa508484bf9629b173f9ea6097b570f21d59285a..db9f1de86d47eb5d4279b6018ebda94817ab805b 100644 (file)
@@ -1,4 +1,4 @@
-From 6657d7b29bbd5bb71bf00dcfac618511f1ec1127 Mon Sep 17 00:00:00 2001
+From 0fae4e3b5898fb0a53b6f6466dace9b4de3377c0 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Thu, 6 Jul 2023 00:06:54 +0800
 Subject: media: dvb-usb-v2: af9035: Fix null-ptr-deref in
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index 1f6c1eefe3892..55c7e7348869b 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -336,6 +336,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -284,6 +284,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -336,8 +337,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -395,6 +397,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -395,17 +398,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -402,10 +406,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index 1f6c1eefe3892..55c7e7348869b 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-
index e710165afe1aaf6b631264ff1f0ca7943abf96e0..db9f1de86d47eb5d4279b6018ebda94817ab805b 100644 (file)
@@ -1,4 +1,4 @@
-From 24924b3aa7d477683b3c05bfed68f95315996e21 Mon Sep 17 00:00:00 2001
+From 0fae4e3b5898fb0a53b6f6466dace9b4de3377c0 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Thu, 6 Jul 2023 00:06:54 +0800
 Subject: media: dvb-usb-v2: af9035: Fix null-ptr-deref in
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index 1f6c1eefe3892..55c7e7348869b 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -336,6 +336,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -284,6 +284,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -336,8 +337,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -395,6 +397,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -395,17 +398,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -402,10 +406,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index 1f6c1eefe3892..55c7e7348869b 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-
index cef2389fca3c9e6a6d42dac1b107ddc2deec5e47..e8facf54b6acb0c531f6f55c8340a4da848770db 100644 (file)
@@ -1,4 +1,4 @@
-From d6fa65ad7f3d470de0302f846997741140917c7d Mon Sep 17 00:00:00 2001
+From 0fae4e3b5898fb0a53b6f6466dace9b4de3377c0 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Thu, 6 Jul 2023 00:06:54 +0800
 Subject: media: dvb-usb-v2: af9035: Fix null-ptr-deref in
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index b1f69c11c8395..218c06da2a469 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -321,6 +321,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -269,6 +269,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -321,8 +322,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -380,6 +382,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -380,17 +383,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -387,10 +391,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index b1f69c11c8395..218c06da2a469 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-
index ecdb0ec86ebc73757756f68df2d976105346fcf6..48277f9de82e41f3c6f551b17742b2f62bd40ecf 100644 (file)
@@ -1,4 +1,4 @@
-From bb3bea574b69a3d7849905e008890aced7be6a42 Mon Sep 17 00:00:00 2001
+From 0fae4e3b5898fb0a53b6f6466dace9b4de3377c0 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Thu, 6 Jul 2023 00:06:54 +0800
 Subject: media: dvb-usb-v2: af9035: Fix null-ptr-deref in
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index 5eef37b00a520..39d9e4f7682c2 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -322,6 +322,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -270,6 +270,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -322,8 +323,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -381,6 +383,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -381,17 +384,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -388,10 +392,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index 5eef37b00a520..39d9e4f7682c2 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-
index 7f8ee2a2209eedfdee0eec775b426968681806d3..e8facf54b6acb0c531f6f55c8340a4da848770db 100644 (file)
@@ -1,4 +1,4 @@
-From 39d6580085ee6fc9a5bd164f6e61742ece9d71be Mon Sep 17 00:00:00 2001
+From 0fae4e3b5898fb0a53b6f6466dace9b4de3377c0 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Thu, 6 Jul 2023 00:06:54 +0800
 Subject: media: dvb-usb-v2: af9035: Fix null-ptr-deref in
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index 3afd18733614a..3a7e5f2f6e951 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -321,6 +321,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -269,6 +269,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -321,8 +322,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -380,6 +382,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -380,17 +383,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -387,10 +391,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index 3afd18733614a..3a7e5f2f6e951 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-
index 0e8f171ac416ee4c08bfeddb42839c5e3c8d0ec5..48277f9de82e41f3c6f551b17742b2f62bd40ecf 100644 (file)
@@ -21,33 +21,45 @@ commit 0ed554fd769a
 Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+[ moved variable declaration to fix build issues in older kernels - gregkh ]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/media/usb/dvb-usb-v2/af9035.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ drivers/media/usb/dvb-usb-v2/af9035.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
-index 1e9c8d01523be..33a2aa8907e65 100644
 --- a/drivers/media/usb/dvb-usb-v2/af9035.c
 +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
-@@ -322,6 +322,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+@@ -270,6 +270,7 @@ static int af9035_i2c_master_xfer(struct
+       struct dvb_usb_device *d = i2c_get_adapdata(adap);
+       struct state *state = d_to_priv(d);
+       int ret;
++      u32 reg;
+       if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
+               return -EAGAIN;
+@@ -322,8 +323,10 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -381,6 +383,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
+                       if (msg[0].addr == state->af9033_i2c_addr[1])
+@@ -381,17 +384,16 @@ static int af9035_i2c_master_xfer(struct
                        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 |
+-                      u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
++                      reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
                                        msg[0].buf[2];
-@@ -388,10 +392,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
                        if (msg[0].addr == state->af9033_i2c_addr[1])
                                reg |= 0x100000;
  
@@ -59,6 +71,3 @@ index 1e9c8d01523be..33a2aa8907e65 100644
                } else {
                        /* I2C write */
                        u8 buf[MAX_XFER_SIZE];
--- 
-2.40.1
-