2007-10-14 17:53:41

by Adrian Bunk

[permalink] [raw]
Subject: tuner-core.c:fe_has_signal() can returne uninitialized value

Commit 1f5ef19779df2c2f75870332b37dd3004c08a515 added the following
function to drivers/media/video/tuner-core.c:

<-- snip -->

static int fe_has_signal(struct tuner *t)
{
struct dvb_tuner_ops *fe_tuner_ops = &t->fe.ops.tuner_ops;
u16 strength;

if (fe_tuner_ops->get_rf_strength)
fe_tuner_ops->get_rf_strength(&t->fe, &strength);

return strength;
}

<-- snip -->


If (!fe_tuner_ops->get_rf_strength) this function returns the value of
an uninitialized variable.

Spotted by the Coverity checker.


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed


2007-10-14 21:16:37

by Michael Ira Krufky

[permalink] [raw]
Subject: Re: tuner-core.c:fe_has_signal() can returne uninitialized value

Adrian Bunk wrote:
> Commit 1f5ef19779df2c2f75870332b37dd3004c08a515 added the following
> function to drivers/media/video/tuner-core.c:
>
> <-- snip -->
>
> static int fe_has_signal(struct tuner *t)
> {
> struct dvb_tuner_ops *fe_tuner_ops = &t->fe.ops.tuner_ops;
> u16 strength;
>
> if (fe_tuner_ops->get_rf_strength)
> fe_tuner_ops->get_rf_strength(&t->fe, &strength);
>
> return strength;
> }
>
> <-- snip -->
>
>
> If (!fe_tuner_ops->get_rf_strength) this function returns the value of
> an uninitialized variable.
>
> Spotted by the Coverity checker.
>
Thank you, Adrian. I've fixed this in my tree:

http://linuxtv.org/hg/~mkrufky/v4l-dvb/rev/101ca558a777

Mauro, please pull from:

http://linuxtv.org/hg/~mkrufky/v4l-dvb

for:

- tuner-core.c: fe_has_signal() can return uninitialized value

tuner-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Please send this to Linus for 2.6.24

Regards,

Mike