tech-multimedia archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems with uvideo(4) on a Asus Eee PC 900



Jeremy Morse <jeremy.morse%gmail.com@localhost> wrote:

> Perhaps we can also send this to some gcc developers and ask why gcc
> didn't notice 'len' was being used uninitialized, or that an integer
> was being passed as a pointer.

No, gcc is not guilty.  Given typedef uint8_t uWord[2]; and uWord len;
the following fragment of the diff:

-       err = uvideo_stream_probe(vs, UR_GET_LEN, len);
+       err = uvideo_stream_probe(vs, UR_GET_LEN, &len);

is no-op, you pass exaclty same value for len and &len, so that was
not what fixed the crash, the UGETW(len) <= sizeof(...) check did.

PS: Extra credit for explaining the difference between len and &len in
a context where void * doesn't muffle it up.

PPS: Given these carefully laid-out set of rakes beautifully arranged
in geometric patterns, gift-wrapped for extra touch and waiting for
people to step on them, I would seriosly suggest to introduce
request-specific inline functions that *do* type-check what is now the
"void * data" argument.

-uwe



Home | Main Index | Thread Index | Old Index