Hello Roel,
Roel Kluin wrote:
> vi drivers/media/dvb/dvb-core/dvb_demux.c +214
>
> and note:
>
> static int dvb_dmx_swfilter_section_copy_dump(struct dvb_demux_feed *feed,
> const u8 *buf, u8 len)
> {
> ...
> if (sec->tsfeedp + len > DMX_MAX_SECFEED_SIZE) {
> ...
> len = DMX_MAX_SECFEED_SIZE - sec->tsfeedp;
> ^------------shouldn't this be '+='?
No. Read it like this: If there isn't enough space for 'len' bytes,
then reduce 'len' to the number of bytes available.
> }
>
> if (len <= 0)
> return 0;
>
> Also note: len cannot be less than 0 since it's an u8.
Yes. This function seems to be overcautious in other places, too.
These two checks can probably get removed:
if (sec->tsfeedp >= DMX_MAX_SECFEED_SIZE)
return 0;
if (limit > DMX_MAX_SECFEED_SIZE)
return -1; /* internal error should never happen */
Regards,
Andreas
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html