diff options
author | Alexandra Khirnova <alexandra.khirnova@gmail.com> | 2013-09-10 11:57:35 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2013-09-10 12:38:32 +0200 |
commit | f369b9356c4606cd4d713d60f7db5de119d901fa (patch) | |
tree | 174e199dd9716a32fbee4fb235d3938721fb333f /libavformat/matroskadec.c | |
parent | bdf990425e2be6912a6d29f032ca558448c8635a (diff) |
avformat: Use av_reallocp_array() where suitable
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r-- | libavformat/matroskadec.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index d5b60714ac..e8ef81f3d1 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -878,15 +878,16 @@ static int ebml_parse_elem(MatroskaDemuxContext *matroska, uint32_t id = syntax->id; uint64_t length; int res; - void *newelem; data = (char *)data + syntax->data_offset; if (syntax->list_elem_size) { EbmlList *list = data; - newelem = av_realloc(list->elem, (list->nb_elem+1)*syntax->list_elem_size); - if (!newelem) - return AVERROR(ENOMEM); - list->elem = newelem; + if ((res = av_reallocp_array(&list->elem, + list->nb_elem + 1, + syntax->list_elem_size)) < 0) { + list->nb_elem = 0; + return res; + } data = (char*)list->elem + list->nb_elem*syntax->list_elem_size; memset(data, 0, syntax->list_elem_size); list->nb_elem++; |