Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: dib7000p: Fix potential division by zero

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>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil: (bw != NULL) -> bw]

authored by

Daniil Dulov and committed by
Hans Verkuil
a1db7b2c 7d9326f1

+1 -1
+1 -1
drivers/media/dvb-frontends/dib7000p.c
··· 497 497 prediv = reg_1856 & 0x3f; 498 498 loopdiv = (reg_1856 >> 6) & 0x3f; 499 499 500 - if ((bw != NULL) && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) { 500 + if (loopdiv && bw && (bw->pll_prediv != prediv || bw->pll_ratio != loopdiv)) { 501 501 dprintk("Updating pll (prediv: old = %d new = %d ; loopdiv : old = %d new = %d)\n", prediv, bw->pll_prediv, loopdiv, bw->pll_ratio); 502 502 reg_1856 &= 0xf000; 503 503 reg_1857 = dib7000p_read_word(state, 1857);