diff options
author | Roman Shaposhnik <roman@shaposhnik.org> | 2003-01-23 22:00:57 +0000 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2003-01-23 22:00:57 +0000 |
commit | 98486a6bc01288a0ac46ae8d54940a994972b90e (patch) | |
tree | 368b6b88e3c331d08da63e82a9ff129bb4ef1c27 /libavformat | |
parent | a5df11ab1e0e2c4bc4218a6543f6dfaf7169d4e4 (diff) | |
download | ffmpeg-98486a6bc01288a0ac46ae8d54940a994972b90e.tar.gz |
zero sized malloc patch by Roman Shaposhnick
Originally committed as revision 1501 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/utils.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index f811b2c628..c2e9328cd3 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -386,11 +386,14 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, } /* allocate private data */ - ic->priv_data = av_mallocz(fmt->priv_data_size); - if (!ic->priv_data) { - err = AVERROR_NOMEM; - goto fail; - } + if (fmt->priv_data_size > 0) { + ic->priv_data = av_mallocz(fmt->priv_data_size); + if (!ic->priv_data) { + err = AVERROR_NOMEM; + goto fail; + } + } else + ic->priv_data = NULL; /* default pts settings is MPEG like */ av_set_pts_info(ic, 33, 1, 90000); @@ -722,10 +725,14 @@ AVStream *av_new_stream(AVFormatContext *s, int id) int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap) { int ret; - - s->priv_data = av_mallocz(s->oformat->priv_data_size); - if (!s->priv_data) - return AVERROR_NOMEM; + + if (s->oformat->priv_data_size > 0) { + s->priv_data = av_mallocz(s->oformat->priv_data_size); + if (!s->priv_data) + return AVERROR_NOMEM; + } else + s->priv_data = NULL; + if (s->oformat->set_parameters) { ret = s->oformat->set_parameters(s, ap); if (ret < 0) |