From 98486a6bc01288a0ac46ae8d54940a994972b90e Mon Sep 17 00:00:00 2001 From: Roman Shaposhnik Date: Thu, 23 Jan 2003 22:00:57 +0000 Subject: [PATCH] zero sized malloc patch by Roman Shaposhnick Originally committed as revision 1501 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffserver.c | 9 ++++++--- libavformat/utils.c | 25 ++++++++++++++++--------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ffserver.c b/ffserver.c index e003a9e0ad..9461e92c07 100644 --- a/ffserver.c +++ b/ffserver.c @@ -2457,9 +2457,12 @@ static int http_receive_data(HTTPContext *c) if (!fmt_in) goto fail; - s.priv_data = av_mallocz(fmt_in->priv_data_size); - if (!s.priv_data) - goto fail; + if (fmt_in->priv_data_size > 0) { + s.priv_data = av_mallocz(fmt_in->priv_data_size); + if (!s.priv_data) + goto fail; + } else + s.priv_data = NULL; if (fmt_in->read_header(&s, 0) < 0) { av_freep(&s.priv_data); 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)