netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] media: dib7000p: Fix potential division by zero
@ 2023-03-24 13:12 Daniil Dulov
  2023-03-24 13:14 ` Vladimir Oltean
  0 siblings, 1 reply; 4+ messages in thread
From: Daniil Dulov @ 2023-03-24 13:12 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: Daniil Dulov, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, Kurt Kanzenbach, netdev,
	linux-kernel, lvc-patches

Variable loopdiv can be assigned 0, then it is used as a denominator,
without checking it for 0.

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

Fixes: 713d54a8bd81 ("[media] DiB7090: add support for the dib7090 based")
Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
---
 drivers/media/dvb-frontends/dib7000p.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/dib7000p.c b/drivers/media/dvb-frontends/dib7000p.c
index 55bee50aa871..bea5717907e7 100644
--- a/drivers/media/dvb-frontends/dib7000p.c
+++ b/drivers/media/dvb-frontends/dib7000p.c
@@ -497,7 +497,7 @@ static int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth
 	prediv = reg_1856 & 0x3f;
 	loopdiv = (reg_1856 >> 6) & 0x3f;
 
-	if ((bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) {
+	if (loopdiv && (bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) {
 		dprintk("Updating pll (prediv: old =  %d new = %d ; loopdiv : old = %d new = %d)\n", prediv, bw->pll_prediv, loopdiv, bw->pll_ratio);
 		reg_1856 &= 0xf000;
 		reg_1857 = dib7000p_read_word(state, 1857);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] media: dib7000p: Fix potential division by zero
  2023-03-24 13:12 [PATCH] media: dib7000p: Fix potential division by zero Daniil Dulov
@ 2023-03-24 13:14 ` Vladimir Oltean
  2023-03-24 13:26   ` Daniil Dulov
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir Oltean @ 2023-03-24 13:14 UTC (permalink / raw)
  To: Daniil Dulov
  Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli, David S. Miller,
	Jakub Kicinski, Kurt Kanzenbach, netdev, linux-kernel,
	lvc-patches

Hi Daniil,

On Fri, Mar 24, 2023 at 06:12:09AM -0700, Daniil Dulov wrote:
> Variable loopdiv can be assigned 0, then it is used as a denominator,
> without checking it for 0.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Fixes: 713d54a8bd81 ("[media] DiB7090: add support for the dib7090 based")
> Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
> ---
>  drivers/media/dvb-frontends/dib7000p.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/dvb-frontends/dib7000p.c b/drivers/media/dvb-frontends/dib7000p.c
> index 55bee50aa871..bea5717907e7 100644
> --- a/drivers/media/dvb-frontends/dib7000p.c
> +++ b/drivers/media/dvb-frontends/dib7000p.c
> @@ -497,7 +497,7 @@ static int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth
>  	prediv = reg_1856 & 0x3f;
>  	loopdiv = (reg_1856 >> 6) & 0x3f;
>  
> -	if ((bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) {
> +	if (loopdiv && (bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) {
>  		dprintk("Updating pll (prediv: old =  %d new = %d ; loopdiv : old = %d new = %d)\n", prediv, bw->pll_prediv, loopdiv, bw->pll_ratio);
>  		reg_1856 &= 0xf000;
>  		reg_1857 = dib7000p_read_word(state, 1857);
> -- 
> 2.25.1
> 

Did you send this patch to the correct recipients and mailing lists?

$ ./scripts/get_maintainer.pl drivers/media/dvb-frontends/dib7000p.c
Mauro Carvalho Chehab <mchehab@kernel.org> (maintainer:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-media@vger.kernel.org (open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-kernel@vger.kernel.org (open list)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] media: dib7000p: Fix potential division by zero
  2023-03-24 13:14 ` Vladimir Oltean
@ 2023-03-24 13:26   ` Daniil Dulov
  2023-03-24 22:27     ` Jakub Kicinski
  0 siblings, 1 reply; 4+ messages in thread
From: Daniil Dulov @ 2023-03-24 13:26 UTC (permalink / raw)
  To: Vladimir Oltean
  Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli, David S. Miller,
	Jakub Kicinski, Kurt Kanzenbach, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, lvc-patches@linuxtesting.org

Hello Vladimir,
Sorry, I used a script with a wrong module, my fault.

-----Original Message-----
From: Vladimir Oltean [mailto:olteanv@gmail.com] 
Sent: Friday, March 24, 2023 4:15 PM
To: Daniil Dulov <D.Dulov@aladdin.ru>
Cc: Andrew Lunn <andrew@lunn.ch>; Vivien Didelot <vivien.didelot@gmail.com>; Florian Fainelli <f.fainelli@gmail.com>; David S. Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Kurt Kanzenbach <kurt@linutronix.de>; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; lvc-patches@linuxtesting.org
Subject: Re: [PATCH] media: dib7000p: Fix potential division by zero

Hi Daniil,

On Fri, Mar 24, 2023 at 06:12:09AM -0700, Daniil Dulov wrote:
> Variable loopdiv can be assigned 0, then it is used as a denominator, 
> without checking it for 0.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Fixes: 713d54a8bd81 ("[media] DiB7090: add support for the dib7090 
> based")
> Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
> ---
>  drivers/media/dvb-frontends/dib7000p.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/dvb-frontends/dib7000p.c 
> b/drivers/media/dvb-frontends/dib7000p.c
> index 55bee50aa871..bea5717907e7 100644
> --- a/drivers/media/dvb-frontends/dib7000p.c
> +++ b/drivers/media/dvb-frontends/dib7000p.c
> @@ -497,7 +497,7 @@ static int dib7000p_update_pll(struct dvb_frontend *fe, struct dibx000_bandwidth
>  	prediv = reg_1856 & 0x3f;
>  	loopdiv = (reg_1856 >> 6) & 0x3f;
>  
> -	if ((bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) {
> +	if (loopdiv && (bw != NULL) && (bw->pll_prediv != prediv || 
> +bw->pll_ratio != loopdiv)) {
>  		dprintk("Updating pll (prediv: old =  %d new = %d ; loopdiv : old = %d new = %d)\n", prediv, bw->pll_prediv, loopdiv, bw->pll_ratio);
>  		reg_1856 &= 0xf000;
>  		reg_1857 = dib7000p_read_word(state, 1857);
> --
> 2.25.1
> 

Did you send this patch to the correct recipients and mailing lists?

$ ./scripts/get_maintainer.pl drivers/media/dvb-frontends/dib7000p.c
Mauro Carvalho Chehab <mchehab@kernel.org> (maintainer:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-media@vger.kernel.org (open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-kernel@vger.kernel.org (open list)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] media: dib7000p: Fix potential division by zero
  2023-03-24 13:26   ` Daniil Dulov
@ 2023-03-24 22:27     ` Jakub Kicinski
  0 siblings, 0 replies; 4+ messages in thread
From: Jakub Kicinski @ 2023-03-24 22:27 UTC (permalink / raw)
  To: Daniil Dulov
  Cc: Vladimir Oltean, Andrew Lunn, Vivien Didelot, Florian Fainelli,
	David S. Miller, Kurt Kanzenbach, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, lvc-patches@linuxtesting.org

On Fri, 24 Mar 2023 13:26:13 +0000 Daniil Dulov wrote:
> Sorry, I used a script with a wrong module, my fault.

Always run the script on the patch itself, not on a file path.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-24 22:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-24 13:12 [PATCH] media: dib7000p: Fix potential division by zero Daniil Dulov
2023-03-24 13:14 ` Vladimir Oltean
2023-03-24 13:26   ` Daniil Dulov
2023-03-24 22:27     ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).