Mercurial > libavformat.hg
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 */ |