avconv.c:3093: error: Null Dereference
  pointer `meta_in` last assigned on line 3027 could be null and is dereferenced at line 3093, column 32.

avconv.c:3025:1: start of procedure copy_metadata()
3023. }
3024. 
3025. static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)
      ^
3026. {
3027.     AVDictionary **meta_in = NULL;

avconv.c:3027:5: 
3025. static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)
3026. {
3027.     AVDictionary **meta_in = NULL;
          ^
3028.     AVDictionary **meta_out;
3029.     int i, ret = 0;

avconv.c:3029:5: 
3027.     AVDictionary **meta_in = NULL;
3028.     AVDictionary **meta_out;
3029.     int i, ret = 0;
          ^
3030.     char type_in, type_out;
3031.     const char *istream_spec = NULL, *ostream_spec = NULL;

avconv.c:3031:5: 
3029.     int i, ret = 0;
3030.     char type_in, type_out;
3031.     const char *istream_spec = NULL, *ostream_spec = NULL;
          ^
3032.     int idx_in = 0, idx_out = 0;
3033. 

avconv.c:3032:5: 
3030.     char type_in, type_out;
3031.     const char *istream_spec = NULL, *ostream_spec = NULL;
3032.     int idx_in = 0, idx_out = 0;
          ^
3033. 
3034.     parse_meta_type(inspec,  &type_in,  &idx_in,  &istream_spec);

avconv.c:3034:5: 
3032.     int idx_in = 0, idx_out = 0;
3033. 
3034.     parse_meta_type(inspec,  &type_in,  &idx_in,  &istream_spec);
          ^
3035.     parse_meta_type(outspec, &type_out, &idx_out, &ostream_spec);
3036. 

avconv.c:2998:1: start of procedure parse_meta_type()
  2996.  * @param stream_spec for type s, the stream specifier is written here
  2997.  */
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
        ^
  2999. {
  3000.     if (*arg) {

avconv.c:3000:9: Taking true branch
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
  2999. {
  3000.     if (*arg) {
                ^
  3001.         *type = *arg;
  3002.         switch (*arg) {

avconv.c:3001:9: 
  2999. {
  3000.     if (*arg) {
  3001.         *type = *arg;
                ^
  3002.         switch (*arg) {
  3003.         case 'g':

avconv.c:3002:9: 
  3000.     if (*arg) {
  3001.         *type = *arg;
  3002.         switch (*arg) {
                ^
  3003.         case 'g':
  3004.             break;

avconv.c:3003:9: Switch condition is false. Skipping switch case
  3001.         *type = *arg;
  3002.         switch (*arg) {
  3003.         case 'g':
                ^
  3004.             break;
  3005.         case 's':

avconv.c:3005:9: Switch condition is false. Skipping switch case
  3003.         case 'g':
  3004.             break;
  3005.         case 's':
                ^
  3006.             if (*(++arg) && *arg != ':') {
  3007.                 av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", arg);

avconv.c:3012:9: Switch condition is false. Skipping switch case
  3010.             *stream_spec = *arg == ':' ? arg + 1 : "";
  3011.             break;
  3012.         case 'c':
                ^
  3013.         case 'p':
  3014.             if (*(++arg) == ':')

avconv.c:3013:9: Switch condition is false. Skipping switch case
  3011.             break;
  3012.         case 'c':
  3013.         case 'p':
                ^
  3014.             if (*(++arg) == ':')
  3015.                 *index = strtol(++arg, NULL, 0);

avconv.c:3018:13: Skipping av_log(): empty list of specs
  3016.             break;
  3017.         default:
  3018.             av_log(NULL, AV_LOG_FATAL, "Invalid metadata type %c.\n", *arg);
                    ^
  3019.             exit_program(1);
  3020.         }

avconv.c:3019:13: Skipping exit_program(): empty list of specs
  3017.         default:
  3018.             av_log(NULL, AV_LOG_FATAL, "Invalid metadata type %c.\n", *arg);
  3019.             exit_program(1);
                    ^
  3020.         }
  3021.     } else

avconv.c:3000:5: 
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
  2999. {
  3000.     if (*arg) {
            ^
  3001.         *type = *arg;
  3002.         switch (*arg) {

avconv.c:3023:1: return from a call to parse_meta_type
  3021.     } else
  3022.         *type = 'g';
  3023. }
        ^
  3024. 
  3025. static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)

avconv.c:3035:5: 
3033. 
3034.     parse_meta_type(inspec,  &type_in,  &idx_in,  &istream_spec);
3035.     parse_meta_type(outspec, &type_out, &idx_out, &ostream_spec);
          ^
3036. 
3037.     if (type_in == 'g' || type_out == 'g')

avconv.c:2998:1: start of procedure parse_meta_type()
  2996.  * @param stream_spec for type s, the stream specifier is written here
  2997.  */
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
        ^
  2999. {
  3000.     if (*arg) {

avconv.c:3000:9: Taking true branch
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
  2999. {
  3000.     if (*arg) {
                ^
  3001.         *type = *arg;
  3002.         switch (*arg) {

avconv.c:3001:9: 
  2999. {
  3000.     if (*arg) {
  3001.         *type = *arg;
                ^
  3002.         switch (*arg) {
  3003.         case 'g':

avconv.c:3002:9: 
  3000.     if (*arg) {
  3001.         *type = *arg;
  3002.         switch (*arg) {
                ^
  3003.         case 'g':
  3004.             break;

avconv.c:3003:9: Switch condition is false. Skipping switch case
  3001.         *type = *arg;
  3002.         switch (*arg) {
  3003.         case 'g':
                ^
  3004.             break;
  3005.         case 's':

avconv.c:3005:9: Switch condition is false. Skipping switch case
  3003.         case 'g':
  3004.             break;
  3005.         case 's':
                ^
  3006.             if (*(++arg) && *arg != ':') {
  3007.                 av_log(NULL, AV_LOG_FATAL, "Invalid metadata specifier %s.\n", arg);

avconv.c:3012:9: Switch condition is false. Skipping switch case
  3010.             *stream_spec = *arg == ':' ? arg + 1 : "";
  3011.             break;
  3012.         case 'c':
                ^
  3013.         case 'p':
  3014.             if (*(++arg) == ':')

avconv.c:3013:9: Switch condition is false. Skipping switch case
  3011.             break;
  3012.         case 'c':
  3013.         case 'p':
                ^
  3014.             if (*(++arg) == ':')
  3015.                 *index = strtol(++arg, NULL, 0);

avconv.c:3018:13: Skipping av_log(): empty list of specs
  3016.             break;
  3017.         default:
  3018.             av_log(NULL, AV_LOG_FATAL, "Invalid metadata type %c.\n", *arg);
                    ^
  3019.             exit_program(1);
  3020.         }

avconv.c:3019:13: Skipping exit_program(): empty list of specs
  3017.         default:
  3018.             av_log(NULL, AV_LOG_FATAL, "Invalid metadata type %c.\n", *arg);
  3019.             exit_program(1);
                    ^
  3020.         }
  3021.     } else

avconv.c:3000:5: 
  2998. static void parse_meta_type(char *arg, char *type, int *index, const char **stream_spec)
  2999. {
  3000.     if (*arg) {
            ^
  3001.         *type = *arg;
  3002.         switch (*arg) {

avconv.c:3023:1: return from a call to parse_meta_type
  3021.     } else
  3022.         *type = 'g';
  3023. }
        ^
  3024. 
  3025. static int copy_metadata(char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)

avconv.c:3037:9: Taking false branch
3035.     parse_meta_type(outspec, &type_out, &idx_out, &ostream_spec);
3036. 
3037.     if (type_in == 'g' || type_out == 'g')
              ^
3038.         o->metadata_global_manual = 1;
3039.     if (type_in == 's' || type_out == 's')

avconv.c:3037:27: Taking false branch
3035.     parse_meta_type(outspec, &type_out, &idx_out, &ostream_spec);
3036. 
3037.     if (type_in == 'g' || type_out == 'g')
                                ^
3038.         o->metadata_global_manual = 1;
3039.     if (type_in == 's' || type_out == 's')

avconv.c:3039:9: Taking false branch
3037.     if (type_in == 'g' || type_out == 'g')
3038.         o->metadata_global_manual = 1;
3039.     if (type_in == 's' || type_out == 's')
              ^
3040.         o->metadata_streams_manual = 1;
3041.     if (type_in == 'c' || type_out == 'c')

avconv.c:3039:27: Taking false branch
3037.     if (type_in == 'g' || type_out == 'g')
3038.         o->metadata_global_manual = 1;
3039.     if (type_in == 's' || type_out == 's')
                                ^
3040.         o->metadata_streams_manual = 1;
3041.     if (type_in == 'c' || type_out == 'c')

avconv.c:3041:9: Taking false branch
3039.     if (type_in == 's' || type_out == 's')
3040.         o->metadata_streams_manual = 1;
3041.     if (type_in == 'c' || type_out == 'c')
              ^
3042.         o->metadata_chapters_manual = 1;
3043. 

avconv.c:3041:27: Taking false branch
3039.     if (type_in == 's' || type_out == 's')
3040.         o->metadata_streams_manual = 1;
3041.     if (type_in == 'c' || type_out == 'c')
                                ^
3042.         o->metadata_chapters_manual = 1;
3043. 

avconv.c:3066:5: Switch condition is false. Skipping switch case
3064.         }\
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
          ^
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
3068. 

avconv.c:3066:5: Switch condition is false. Skipping switch case
3064.         }\
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
          ^
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
3068. 

avconv.c:3066:5: Switch condition is false. Skipping switch case
3064.         }\
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
          ^
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
3068. 

avconv.c:3067:5: Switch condition is false. Skipping switch case
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
          ^
3068. 
3069.     /* for input streams choose first matching stream */

avconv.c:3067:5: Switch condition is false. Skipping switch case
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
          ^
3068. 
3069.     /* for input streams choose first matching stream */

avconv.c:3067:5: Switch condition is false. Skipping switch case
3065. 
3066.     SET_DICT(type_in, meta_in, ic, idx_in);
3067.     SET_DICT(type_out, meta_out, oc, idx_out);
          ^
3068. 
3069.     /* for input streams choose first matching stream */

avconv.c:3070:9: Taking false branch
3068. 
3069.     /* for input streams choose first matching stream */
3070.     if (type_in == 's') {
              ^
3071.         for (i = 0; i < ic->nb_streams; i++) {
3072.             if ((ret = check_stream_specifier(ic, ic->streams[i], istream_spec)) > 0) {

avconv.c:3084:9: Taking false branch
3082.     }
3083. 
3084.     if (type_out == 's') {
              ^
3085.         for (i = 0; i < oc->nb_streams; i++) {
3086.             if ((ret = check_stream_specifier(oc, oc->streams[i], ostream_spec)) > 0) {

avconv.c:3093:9: 
3091.         }
3092.     } else
3093.         av_dict_copy(meta_out, *meta_in, AV_DICT_DONT_OVERWRITE);
              ^
3094. 
3095.     return 0;
