if(seclen <= 0 || seclen > DMX_MAX_SECFEED_SIZE || seclen + sec->secbufp > limit) 
if (seclen <= 0 || seclen > DMX_MAX_SECFEED_SIZE || seclen + sec->secbufp > limit) 
static int dvb_dmx_swfilter_section_copy_dump(struct dvb_demux_feed *feed, const u8 *buf, u8 len){	struct dvb_demux *demux = feed->demux;	struct dmx_section_feed *sec = &feed->feed.sec;	u16 limit, seclen, n;	if(sec->tsfeedp >= DMX_MAX_SECFEED_SIZE)		return 0;	if(sec->tsfeedp + len > DMX_MAX_SECFEED_SIZE)	{#ifdef DVB_DEMUX_SECTION_LOSS_LOG		printk("dvb_demux.c section buffer full loss: %d/%d\n",		       sec->tsfeedp + len - DMX_MAX_SECFEED_SIZE, DMX_MAX_SECFEED_SIZE);#endif		len = DMX_MAX_SECFEED_SIZE - sec->tsfeedp;	}	if(len <= 0)		return 0;	demux->memcopy(feed, sec->secbuf_base + sec->tsfeedp, buf, len);	sec->tsfeedp += len;	/* -----------------------------------------------------	** Dump all the sections we can find in the data (Emard)	*/	limit = sec->tsfeedp;	if(limit > DMX_MAX_SECFEED_SIZE)		return -1; /* internal error should never happen */	/* to be sure always set secbuf */	sec->secbuf = sec->secbuf_base + sec->secbufp;	for(n = 0; sec->secbufp + 2 < limit; n++)	{		seclen = section_length(sec->secbuf);		if(seclen <= 0 || seclen > DMX_MAX_SECFEED_SIZE		   || seclen + sec->secbufp > limit)			return 0;		sec->seclen = seclen;		sec->crc_val = ~0;		/* dump [secbuf .. secbuf+seclen) */		if(feed->pusi_seen)			dvb_dmx_swfilter_section_feed(feed);#ifdef DVB_DEMUX_SECTION_LOSS_LOG		else			printk("dvb_demux.c pusi not seen, discarding section data\n");#endif		sec->secbufp += seclen; /* secbufp and secbuf moving together is */		sec->secbuf += seclen; /* redundand but saves pointer arithmetic */	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dad4a73071532448f6cee29791476494a8eb3a58/dvb_demux.c/clean/drivers/media/dvb/dvb-core/dvb_demux.c