vlc | branch: master | Michael Tänzer <[email protected]> | Fri Mar 4 21:45:44 2016 +0100| [fcedf52d5f01b76fb213ee45716e5d25a5b40829] | committer: Jean-Baptiste Kempf
ogg codecs: use checked realloc() instead of xrealloc() Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fcedf52d5f01b76fb213ee45716e5d25a5b40829 --- modules/codec/daala.c | 10 ++++++++-- modules/codec/kate.c | 9 +++++++-- modules/codec/oggspots.c | 8 ++++++-- modules/codec/speex.c | 9 +++++++-- modules/codec/theora.c | 11 +++++++++-- modules/codec/vorbis.c | 9 +++++++-- 6 files changed, 44 insertions(+), 12 deletions(-) diff --git a/modules/codec/daala.c b/modules/codec/daala.c index ae790dd..fb79ed7 100644 --- a/modules/codec/daala.c +++ b/modules/codec/daala.c @@ -380,9 +380,15 @@ static int ProcessHeaders( decoder_t *p_dec ) } else { + void* p_extra = realloc( p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra ); + if( unlikely( p_extra == NULL ) ) + { + ret = VLC_ENOMEM; + goto cleanup; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc( p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); memcpy( p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra ); } diff --git a/modules/codec/kate.c b/modules/codec/kate.c index 64befc6..fe2ec96 100644 --- a/modules/codec/kate.c +++ b/modules/codec/kate.c @@ -592,9 +592,14 @@ static int ProcessHeaders( decoder_t *p_dec ) #ifdef ENABLE_PACKETIZER else { + void* p_extra = realloc( p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra ); + if( unlikely( p_extra == NULL ) ) + { + return VLC_ENOMEM; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc( p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); memcpy( p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra ); } diff --git a/modules/codec/oggspots.c b/modules/codec/oggspots.c index 0d7983b..4fbd6e4 100644 --- a/modules/codec/oggspots.c +++ b/modules/codec/oggspots.c @@ -250,9 +250,13 @@ static int ProcessHeader(decoder_t* p_dec) * latter are underspecified. */ if (p_sys->b_packetizer) { + void* p_extra = realloc(p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra); + if (unlikely(p_extra == NULL)) { + return VLC_ENOMEM; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc(p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra); memcpy(p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra); } diff --git a/modules/codec/speex.c b/modules/codec/speex.c index d985e1d..32854c2 100644 --- a/modules/codec/speex.c +++ b/modules/codec/speex.c @@ -424,9 +424,14 @@ static int ProcessHeaders( decoder_t *p_dec ) if( p_sys->b_packetizer ) { + void* p_extra = realloc( p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra ); + if( unlikely( p_extra == NULL ) ) + { + return VLC_ENOMEM; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc( p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); memcpy( p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra ); } diff --git a/modules/codec/theora.c b/modules/codec/theora.c index f1f100d..8212d19 100644 --- a/modules/codec/theora.c +++ b/modules/codec/theora.c @@ -399,9 +399,16 @@ static int ProcessHeaders( decoder_t *p_dec ) } else { + void* p_extra = realloc( p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra ); + if( unlikely( p_extra == NULL ) ) + { + /* Clean up the decoder setup info... we're done with it */ + th_setup_free( ts ); + return VLC_ENOMEM; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc( p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); memcpy( p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra ); } diff --git a/modules/codec/vorbis.c b/modules/codec/vorbis.c index eef9578..c557032 100644 --- a/modules/codec/vorbis.c +++ b/modules/codec/vorbis.c @@ -414,9 +414,14 @@ static int ProcessHeaders( decoder_t *p_dec ) } else { + void* p_extra = realloc( p_dec->fmt_out.p_extra, + p_dec->fmt_in.i_extra ); + if( unlikely( p_extra == NULL ) ) + { + return VLC_ENOMEM; + } + p_dec->fmt_out.p_extra = p_extra; p_dec->fmt_out.i_extra = p_dec->fmt_in.i_extra; - p_dec->fmt_out.p_extra = xrealloc( p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); memcpy( p_dec->fmt_out.p_extra, p_dec->fmt_in.p_extra, p_dec->fmt_out.i_extra ); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
