comparison oggparsevorbis.c @ 6351:05a6d7c6813e libavformat

oggparsevorbis: Add some sanity checks to header packet ordering/presence.
author alexc
date Sat, 07 Aug 2010 21:30:34 +0000
parents 536e5527c1e0
children
comparison
equal deleted inserted replaced
6350:aea92c85d611 6351:05a6d7c6813e
204 204
205 if (os->psize < 1 || pkt_type > 5) 205 if (os->psize < 1 || pkt_type > 5)
206 return -1; 206 return -1;
207 207
208 priv = os->private; 208 priv = os->private;
209
210 if (priv->packet[pkt_type>>1])
211 return -1;
212 if (pkt_type > 1 && !priv->packet[0] || pkt_type > 3 && !priv->packet[1])
213 return -1;
214
209 priv->len[pkt_type >> 1] = os->psize; 215 priv->len[pkt_type >> 1] = os->psize;
210 priv->packet[pkt_type >> 1] = av_mallocz(os->psize); 216 priv->packet[pkt_type >> 1] = av_mallocz(os->psize);
211 memcpy(priv->packet[pkt_type >> 1], os->buf + os->pstart, os->psize); 217 memcpy(priv->packet[pkt_type >> 1], os->buf + os->pstart, os->psize);
212 if (os->buf[os->pstart] == 1) { 218 if (os->buf[os->pstart] == 1) {
213 const uint8_t *p = os->buf + os->pstart + 7; /* skip "\001vorbis" tag */ 219 const uint8_t *p = os->buf + os->pstart + 7; /* skip "\001vorbis" tag */