Re: 2.4.21-pre4 comparison bugs (Even More Again)

Alan Cox (alan@lxorguk.ukuu.org.uk)
09 Feb 2003 21:59:32 +0000


On Sun, 2003-02-09 at 18:22, Oleg Drokin wrote:
> Hello!
>
> Ok. In addition to "unsigned_var < 0" kind of error checks that
> never work, there is different non-working kind of checks:
> "pointer < 0".
> We can see these at:
> drivers/char/joystick/tmdc.c:318 if (tmdc->abs[i] < 0) continue;
> drivers/char/epca.c:3758 if (board.port <= 0)
> drivers/char/epca.c:3770 if (board.membase <= 0)
> drivers/media/radio/radio-cadet.c:541 if(request_region(io,2, "cadet-probe")>=0) {
> drivers/net/wan/dscc4.c:1760 if (dscc4_init_dummy_skb(dpriv) < 0)
>
> Given the fact that you seem not to like casts to signed int,
> how do you propose to fix these?

By actually going and reading the drivers to see why the errors occur
and if they are meaningful. You need to know the possible returns and
the intent of those returns.

Eg radio-cadet request region appears not be a cast problem but a
complete misunderstanding of the return codes. Likewise epca it looks
like the board.port/board.membase are just overbroad checks and in fact
harmless.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/