2017-01-10 19:45 GMT+08:00 Steven Liu <l...@chinaffmpeg.org>: > CID: 1324298 > add a label when error goto the label to release resource > > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavfilter/vf_libopencv.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c > index f8ae9d5..8128030 100644 > --- a/libavfilter/vf_libopencv.c > +++ b/libavfilter/vf_libopencv.c > @@ -157,7 +157,8 @@ static int read_shape_from_file(int *cols, int *rows, > int **values, const char * > if (buf[i] == '\n') { > if (*rows == INT_MAX) { > av_log(log_ctx, AV_LOG_ERROR, "Overflow on the number of > rows in the file\n"); > - return AVERROR_INVALIDDATA; > + ret = AVERROR_INVALIDDATA; > + goto end; > } > ++(*rows); > *cols = FFMAX(*cols, w); > @@ -171,10 +172,13 @@ static int read_shape_from_file(int *cols, int > *rows, int **values, const char * > if (*rows > (SIZE_MAX / sizeof(int) / *cols)) { > av_log(log_ctx, AV_LOG_ERROR, "File with size %dx%d is too big\n", > *rows, *cols); > - return AVERROR_INVALIDDATA; > + ret = AVERROR_INVALIDDATA; > + goto end; > + } > + if (!(*values = av_mallocz_array(sizeof(int) * *rows, *cols))) { > + ret = AVERROR(ENOMEM); > + goto end; > } > - if (!(*values = av_mallocz_array(sizeof(int) * *rows, *cols))) > - return AVERROR(ENOMEM); > > /* fill *values */ > p = buf; > @@ -188,6 +192,8 @@ static int read_shape_from_file(int *cols, int *rows, > int **values, const char * > (*values)[*cols*i + j] = !!av_isgraph(*(p++)); > } > } > + > +end: > av_file_unmap(buf, size); > > #ifdef DEBUG > -- > 2.10.1.382.ga23ca1b.dirty > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
applied! Thanks _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel