[FFmpeg-devel] [PATCH V1 12/12] tools/aviocat: fix memory leak after av_dict_parse_string fail

Jun Zhao mypopydev at gmail.com
Wed Jan 1 07:20:40 EET 2020


From: Jun Zhao <barryjzhao at tencent.com>

In case of failure, all the successfully set entries are stored in
*pm. We need to manually free the created dictionary to avoid
memory leak.

Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
---
 tools/aviocat.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/tools/aviocat.c b/tools/aviocat.c
index 816ab70..0fdf39b 100644
--- a/tools/aviocat.c
+++ b/tools/aviocat.c
@@ -53,6 +53,7 @@ int main(int argc, char **argv)
             i++;
         } else if (!strcmp(argv[i], "-oi") && i + 1 < argc) {
             if (av_dict_parse_string(&in_opts, argv[i + 1], "=", ":", 0) < 0) {
+                av_dict_free(&in_opts);
                 fprintf(stderr, "Cannot parse option string %s\n",
                         argv[i + 1]);
                 return usage(argv[0], 1);
@@ -60,6 +61,7 @@ int main(int argc, char **argv)
             i++;
         } else if (!strcmp(argv[i], "-oo") && i + 1 < argc) {
             if (av_dict_parse_string(&out_opts, argv[i + 1], "=", ":", 0) < 0) {
+                av_dict_free(&out_opts);
                 fprintf(stderr, "Cannot parse option string %s\n",
                         argv[i + 1]);
                 return usage(argv[0], 1);
-- 
1.7.1



More information about the ffmpeg-devel mailing list