Re: [PATCH] media: dib7000p: Fix potential division by zero

From: Vladimir Oltean
Date: Fri Mar 24 2023 - 09:14:55 EST


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@xxxxxxxxxx>
> ---
> 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@xxxxxxxxxx> (maintainer:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-media@xxxxxxxxxxxxxxx (open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB))
linux-kernel@xxxxxxxxxxxxxxx (open list)