Re: Signed divides vs shifts (Re: [Security] /dev/urandom usesuninit bytes, leaks user data)

From: Eric Dumazet
Date: Mon Dec 17 2007 - 13:10:35 EST


On Mon, 17 Dec 2007 10:05:35 -0800
"Ray Lee" <ray-lk@xxxxxxxxxxxxx> wrote:

> On Dec 17, 2007 9:55 AM, Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:
> > - mid = (last - first) / 2 + first;
> > + while (low <= high) {
> > + mid = (low + high) / 2;
>
> I think you just introduced a bug. Think about what happens if
> low=high=MAX_LONG/2 + 1.
>

Fortunatly this is not possible :)

Hint : sizeof(struct exception_table_entry) is >= 8

so high is garanteed to be <= MAX_LONG/8

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