diff options
author | Himangi Saraogi <himangi774@gmail.com> | 2015-04-03 17:16:05 +0300 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-04-03 18:23:45 +0300 |
commit | 24326930d87dd7e851c1cc383bc0682d746ffaf8 (patch) | |
tree | 5225adc7782d48f94ae4be24d532d381448ccf90 /libavfilter | |
parent | acbb90407a27f72dd238aa035ec3e832015870e7 (diff) |
filtfmts: Avoid null pointer dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/filtfmts.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/libavfilter/filtfmts.c b/libavfilter/filtfmts.c index c1025b978e..46a2d9447d 100644 --- a/libavfilter/filtfmts.c +++ b/libavfilter/filtfmts.c @@ -75,6 +75,7 @@ int main(int argc, char **argv) const char *filter_name; const char *filter_args = NULL; int i; + int ret = 0; av_log_set_level(AV_LOG_DEBUG); @@ -115,11 +116,21 @@ int main(int argc, char **argv) /* create a link for each of the input pads */ for (i = 0; i < filter_ctx->nb_inputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); + if (!link) { + fprintf(stderr, "Unable to allocate memory for filter input link\n"); + ret = 1; + goto fail; + } link->type = avfilter_pad_get_type(filter_ctx->input_pads, i); filter_ctx->inputs[i] = link; } for (i = 0; i < filter_ctx->nb_outputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); + if (!link) { + fprintf(stderr, "Unable to allocate memory for filter output link\n"); + ret = 1; + goto fail; + } link->type = avfilter_pad_get_type(filter_ctx->output_pads, i); filter_ctx->outputs[i] = link; } @@ -131,8 +142,9 @@ int main(int argc, char **argv) print_formats(filter_ctx); +fail: avfilter_free(filter_ctx); avfilter_graph_free(&graph_ctx); fflush(stdout); - return 0; + return ret; } |