summaryrefslogtreecommitdiff
path: root/libavformat/assdec.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2014-10-24 13:15:40 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2014-10-29 16:54:43 +0000
commite9ba3098319f78c91470c05da988d865491852c5 (patch)
tree6b563f7c4df03fc5963c8c58140802e9974eb2e2 /libavformat/assdec.c
parent2cd28693a59050717cb7da6cb229e606b1dee356 (diff)
assdec: check av_new_packet return value
CC: libav-stable@libav.org Bug-Id: CID 703626
Diffstat (limited to 'libavformat/assdec.c')
-rw-r--r--libavformat/assdec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/assdec.c b/libavformat/assdec.c
index 7bd3d173ac..08c1222264 100644
--- a/libavformat/assdec.c
+++ b/libavformat/assdec.c
@@ -151,6 +151,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
{
ASSContext *ass = s->priv_data;
uint8_t *p, *end;
+ int ret;
if (ass->event_index >= ass->event_count)
return AVERROR(EIO);
@@ -158,7 +159,9 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
p = ass->event[ass->event_index];
end = strchr(p, '\n');
- av_new_packet(pkt, end ? end - p + 1 : strlen(p));
+ ret = av_new_packet(pkt, end ? end - p + 1 : strlen(p));
+ if (ret < 0)
+ return ret;
pkt->flags |= AV_PKT_FLAG_KEY;
pkt->pos = p - ass->event_buffer + s->streams[0]->codec->extradata_size;
pkt->pts = pkt->dts = get_pts(p);