libavfilter/avfilter.c:703: error: Memory Leak
  memory dynamically allocated by call to `av_strdup()` at line 670, column 26 is not reachable after line 703, column 13.

libavfilter/avfilter.c:614:1: start of procedure avfilter_init_str()
612. }
613. 
614. int avfilter_init_str(AVFilterContext *filter, const char *args)
     ^
615. {
616.     AVDictionary *options = NULL;

libavfilter/avfilter.c:616:5: 
614. int avfilter_init_str(AVFilterContext *filter, const char *args)
615. {
616.     AVDictionary *options = NULL;
         ^
617.     AVDictionaryEntry *e;
618.     int ret = 0;

libavfilter/avfilter.c:618:5: 
616.     AVDictionary *options = NULL;
617.     AVDictionaryEntry *e;
618.     int ret = 0;
         ^
619. 
620.     if (args && *args) {

libavfilter/avfilter.c:620:9: Taking true branch
618.     int ret = 0;
619. 
620.     if (args && *args) {
             ^
621.         if (!filter->filter->priv_class) {
622.             av_log(filter, AV_LOG_ERROR, "This filter does not take any "

libavfilter/avfilter.c:620:17: Taking true branch
618.     int ret = 0;
619. 
620.     if (args && *args) {
                     ^
621.         if (!filter->filter->priv_class) {
622.             av_log(filter, AV_LOG_ERROR, "This filter does not take any "

libavfilter/avfilter.c:621:14: Taking false branch
619. 
620.     if (args && *args) {
621.         if (!filter->filter->priv_class) {
                  ^
622.             av_log(filter, AV_LOG_ERROR, "This filter does not take any "
623.                    "options, but options were provided: %s.\n", args);

libavfilter/avfilter.c:628:14: Taking false branch
626. 
627. #if FF_API_OLD_FILTER_OPTS
628.         if (!strcmp(filter->filter->name, "scale") &&
                  ^
629.             strchr(args, ':') && strchr(args, ':') < strchr(args, '=')) {
630.             /* old w:h:flags=<flags> syntax */

libavfilter/avfilter.c:657:13: Taking false branch
655. #endif
656. 
657.         if (strchr(args, '=')) {
                 ^
658.             /* assume a list of key1=value1:key2=value2:... */
659.             ret = av_dict_parse_string(&options, args, "=", ":", 0);

libavfilter/avfilter.c:663:21: Taking false branch
661.                 goto fail;
662. #if FF_API_OLD_FILTER_OPTS
663.         } else if (!strcmp(filter->filter->name, "format")     ||
                         ^
664.                    !strcmp(filter->filter->name, "noformat")   ||
665.                    !strcmp(filter->filter->name, "frei0r")     ||

libavfilter/avfilter.c:664:21: Taking false branch
662. #if FF_API_OLD_FILTER_OPTS
663.         } else if (!strcmp(filter->filter->name, "format")     ||
664.                    !strcmp(filter->filter->name, "noformat")   ||
                         ^
665.                    !strcmp(filter->filter->name, "frei0r")     ||
666.                    !strcmp(filter->filter->name, "frei0r_src") ||

libavfilter/avfilter.c:665:21: Taking false branch
663.         } else if (!strcmp(filter->filter->name, "format")     ||
664.                    !strcmp(filter->filter->name, "noformat")   ||
665.                    !strcmp(filter->filter->name, "frei0r")     ||
                         ^
666.                    !strcmp(filter->filter->name, "frei0r_src") ||
667.                    !strcmp(filter->filter->name, "ocv")) {

libavfilter/avfilter.c:666:21: Taking false branch
664.                    !strcmp(filter->filter->name, "noformat")   ||
665.                    !strcmp(filter->filter->name, "frei0r")     ||
666.                    !strcmp(filter->filter->name, "frei0r_src") ||
                         ^
667.                    !strcmp(filter->filter->name, "ocv")) {
668.             /* a hack for compatibility with the old syntax

libavfilter/avfilter.c:667:21: Taking true branch
665.                    !strcmp(filter->filter->name, "frei0r")     ||
666.                    !strcmp(filter->filter->name, "frei0r_src") ||
667.                    !strcmp(filter->filter->name, "ocv")) {
                         ^
668.             /* a hack for compatibility with the old syntax
669.              * replace colons with |s */

libavfilter/avfilter.c:670:13: 
668.             /* a hack for compatibility with the old syntax
669.              * replace colons with |s */
670.             char *copy = av_strdup(args);
                 ^
671.             char *p    = copy;
672.             int nb_leading = 0; // number of leading colons to skip

libavutil/mem.c:196:1: start of procedure av_strdup()
  194. }
  195. 
  196. char *av_strdup(const char *s)
       ^
  197. {
  198.     char *ptr = NULL;

libavutil/mem.c:198:5: 
  196. char *av_strdup(const char *s)
  197. {
  198.     char *ptr = NULL;
           ^
  199.     if (s) {
  200.         int len = strlen(s) + 1;

libavutil/mem.c:199:9: Taking true branch
  197. {
  198.     char *ptr = NULL;
  199.     if (s) {
               ^
  200.         int len = strlen(s) + 1;
  201.         ptr = av_realloc(NULL, len);

libavutil/mem.c:200:9: 
  198.     char *ptr = NULL;
  199.     if (s) {
  200.         int len = strlen(s) + 1;
               ^
  201.         ptr = av_realloc(NULL, len);
  202.         if (ptr)

libavutil/mem.c:201:9: 
  199.     if (s) {
  200.         int len = strlen(s) + 1;
  201.         ptr = av_realloc(NULL, len);
               ^
  202.         if (ptr)
  203.             memcpy(ptr, s, len);

libavutil/mem.c:107:1: start of procedure av_realloc()
    105. }
    106. 
    107. void *av_realloc(void *ptr, size_t size)
         ^
    108. {
    109.     /* let's disallow possibly ambiguous cases */

libavutil/mem.c:110:9: Taking false branch
    108. {
    109.     /* let's disallow possibly ambiguous cases */
    110.     if (size > (INT_MAX - 16))
                 ^
    111.         return NULL;
    112. 

libavutil/mem.c:116:5: 
    114.     return _aligned_realloc(ptr, size, 32);
    115. #else
    116.     return realloc(ptr, size);
             ^
    117. #endif
    118. }

libavutil/mem.c:118:1: return from a call to av_realloc
    116.     return realloc(ptr, size);
    117. #endif
    118. }
         ^
    119. 
    120. int av_reallocp(void *ptr, size_t size)

libavutil/mem.c:202:13: Taking true branch
  200.         int len = strlen(s) + 1;
  201.         ptr = av_realloc(NULL, len);
  202.         if (ptr)
                   ^
  203.             memcpy(ptr, s, len);
  204.     }

libavutil/mem.c:203:13: 
  201.         ptr = av_realloc(NULL, len);
  202.         if (ptr)
  203.             memcpy(ptr, s, len);
                   ^
  204.     }
  205.     return ptr;

libavutil/mem.c:205:5: 
  203.             memcpy(ptr, s, len);
  204.     }
  205.     return ptr;
           ^
  206. }
  207. 

libavutil/mem.c:206:1: return from a call to av_strdup
  204.     }
  205.     return ptr;
  206. }
       ^
  207. 
  208. char *av_strndup(const char *s, size_t len)

libavfilter/avfilter.c:671:13: 
669.              * replace colons with |s */
670.             char *copy = av_strdup(args);
671.             char *p    = copy;
                 ^
672.             int nb_leading = 0; // number of leading colons to skip
673. 

libavfilter/avfilter.c:672:13: 
670.             char *copy = av_strdup(args);
671.             char *p    = copy;
672.             int nb_leading = 0; // number of leading colons to skip
                 ^
673. 
674.             if (!copy) {

libavfilter/avfilter.c:674:18: Taking false branch
672.             int nb_leading = 0; // number of leading colons to skip
673. 
674.             if (!copy) {
                      ^
675.                 ret = AVERROR(ENOMEM);
676.                 goto fail;

libavfilter/avfilter.c:679:18: Taking false branch
677.             }
678. 
679.             if (!strcmp(filter->filter->name, "frei0r") ||
                      ^
680.                 !strcmp(filter->filter->name, "ocv"))
681.                 nb_leading = 1;

libavfilter/avfilter.c:680:18: Taking false branch
678. 
679.             if (!strcmp(filter->filter->name, "frei0r") ||
680.                 !strcmp(filter->filter->name, "ocv"))
                      ^
681.                 nb_leading = 1;
682.             else if (!strcmp(filter->filter->name, "frei0r_src"))

libavfilter/avfilter.c:682:23: Taking false branch
680.                 !strcmp(filter->filter->name, "ocv"))
681.                 nb_leading = 1;
682.             else if (!strcmp(filter->filter->name, "frei0r_src"))
                           ^
683.                 nb_leading = 3;
684. 

libavfilter/avfilter.c:685:20: Loop condition is false. Leaving loop
683.                 nb_leading = 3;
684. 
685.             while (nb_leading--) {
                        ^
686.                 p = strchr(p, ':');
687.                 if (!p) {

libavfilter/avfilter.c:694:17: Taking true branch
692.             }
693. 
694.             if (strchr(p, ':')) {
                     ^
695.                 av_log(filter, AV_LOG_WARNING, "This syntax is deprecated. Use "
696.                        "'|' to separate the list items.\n");

libavfilter/avfilter.c:695:17: Skipping av_log(): empty list of specs
693. 
694.             if (strchr(p, ':')) {
695.                 av_log(filter, AV_LOG_WARNING, "This syntax is deprecated. Use "
                     ^
696.                        "'|' to separate the list items.\n");
697.             }

libavfilter/avfilter.c:699:21: Loop condition is false. Leaving loop
697.             }
698. 
699.             while ((p = strchr(p, ':')))
                         ^
700.                 *p++ = '|';
701. 

libavfilter/avfilter.c:702:13: Skipping process_unnamed_options(): empty list of specs
700.                 *p++ = '|';
701. 
702.             ret = process_unnamed_options(filter, &options, copy);
                 ^
703.             av_freep(&copy);
704. 

libavfilter/avfilter.c:703:13: Skipping av_freep(): empty list of specs
701. 
702.             ret = process_unnamed_options(filter, &options, copy);
703.             av_freep(&copy);
                 ^
704. 
705.             if (ret < 0)
