Module: libav Branch: master Commit: ed9245dba83f9add60f55718b537b0af2105c60e
Author: Vittorio Giovara <[email protected]> Committer: Anton Khirnov <[email protected]> Date: Sat Oct 5 21:35:31 2013 +0200 oggparsevorbis: check allocations Signed-off-by: Anton Khirnov <[email protected]> --- libavformat/oggparsevorbis.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index 8283390..1804e9a 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -172,15 +172,17 @@ struct oggvorbis_private { int final_duration; }; -static unsigned int fixup_vorbis_headers(AVFormatContext *as, - struct oggvorbis_private *priv, - uint8_t **buf) +static int fixup_vorbis_headers(AVFormatContext *as, + struct oggvorbis_private *priv, + uint8_t **buf) { int i, offset, len, err; unsigned char *ptr; len = priv->len[0] + priv->len[1] + priv->len[2]; ptr = *buf = av_mallocz(len + len / 255 + 64); + if (!ptr) + return AVERROR(ENOMEM); ptr[0] = 2; offset = 1; @@ -236,6 +238,8 @@ static int vorbis_header(AVFormatContext *s, int idx) priv->len[pkt_type >> 1] = os->psize; priv->packet[pkt_type >> 1] = av_mallocz(os->psize); + if (!priv->packet[pkt_type >> 1]) + return AVERROR(ENOMEM); memcpy(priv->packet[pkt_type >> 1], os->buf + os->pstart, os->psize); if (os->buf[os->pstart] == 1) { const uint8_t *p = os->buf + os->pstart + 7; /* skip "\001vorbis" tag */ _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
