libavformat/movenc.c:1078: error: Null Dereference
  pointer `descr` last assigned on line 1047 could be null and is dereferenced by call to `strlen()` at line 1078, column 22.

libavformat/movenc.c:1045:1: start of procedure mov_write_hdlr_tag()
1043. }
1044. 
1045. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
      ^
1046. {
1047.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;

libavformat/movenc.c:1047:5: 
1045. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
1046. {
1047.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
          ^
1048.     int64_t pos = url_ftell(pb);
1049. 

libavformat/movenc.c:1048:5: 
1046. {
1047.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
1048.     int64_t pos = url_ftell(pb);
          ^
1049. 
1050.     if (!track) { /* no media --> data handler */

libavformat/aviobuf.c:189:1: start of procedure url_ftell()
  187. }
  188. 
  189. int64_t url_ftell(ByteIOContext *s)
       ^
  190. {
  191.     return url_fseek(s, 0, SEEK_CUR);

libavformat/aviobuf.c:191:5: Skipping url_fseek(): empty list of specs
  189. int64_t url_ftell(ByteIOContext *s)
  190. {
  191.     return url_fseek(s, 0, SEEK_CUR);
           ^
  192. }
  193. 

libavformat/aviobuf.c:192:1: return from a call to url_ftell
  190. {
  191.     return url_fseek(s, 0, SEEK_CUR);
  192. }
       ^
  193. 
  194. int64_t url_fsize(ByteIOContext *s)

libavformat/movenc.c:1050:10: Taking false branch
1048.     int64_t pos = url_ftell(pb);
1049. 
1050.     if (!track) { /* no media --> data handler */
               ^
1051.         hdlr = "dhlr";
1052.         hdlr_type = "url ";

libavformat/movenc.c:1055:17: Condition is true
1053.         descr = "DataHandler";
1054.     } else {
1055.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                      ^
1056.         if (track->enc->codec_type == AVMEDIA_TYPE_VIDEO) {
1057.             hdlr_type = "vide";

libavformat/movenc.c:1055:16: 
1053.         descr = "DataHandler";
1054.     } else {
1055.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                     ^
1056.         if (track->enc->codec_type == AVMEDIA_TYPE_VIDEO) {
1057.             hdlr_type = "vide";

libavformat/movenc.c:1055:9: 
1053.         descr = "DataHandler";
1054.     } else {
1055.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
              ^
1056.         if (track->enc->codec_type == AVMEDIA_TYPE_VIDEO) {
1057.             hdlr_type = "vide";

libavformat/movenc.c:1056:13: Taking false branch
1054.     } else {
1055.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
1056.         if (track->enc->codec_type == AVMEDIA_TYPE_VIDEO) {
                  ^
1057.             hdlr_type = "vide";
1058.             descr = "VideoHandler";

libavformat/movenc.c:1059:20: Taking false branch
1057.             hdlr_type = "vide";
1058.             descr = "VideoHandler";
1059.         } else if (track->enc->codec_type == AVMEDIA_TYPE_AUDIO) {
                         ^
1060.             hdlr_type = "soun";
1061.             descr = "SoundHandler";

libavformat/movenc.c:1062:20: Taking false branch
1060.             hdlr_type = "soun";
1061.             descr = "SoundHandler";
1062.         } else if (track->enc->codec_type == AVMEDIA_TYPE_SUBTITLE) {
                         ^
1063.             if (track->tag == MKTAG('t','x','3','g')) hdlr_type = "sbtl";
1064.             else                                      hdlr_type = "text";

libavformat/movenc.c:1069:5: Skipping put_be32(): empty list of specs
1067.     }
1068. 
1069.     put_be32(pb, 0); /* size */
          ^
1070.     put_tag(pb, "hdlr");
1071.     put_be32(pb, 0); /* Version & flags */

libavformat/movenc.c:1070:5: Skipping put_tag(): empty list of specs
1068. 
1069.     put_be32(pb, 0); /* size */
1070.     put_tag(pb, "hdlr");
          ^
1071.     put_be32(pb, 0); /* Version & flags */
1072.     put_buffer(pb, hdlr, 4); /* handler */

libavformat/movenc.c:1071:5: Skipping put_be32(): empty list of specs
1069.     put_be32(pb, 0); /* size */
1070.     put_tag(pb, "hdlr");
1071.     put_be32(pb, 0); /* Version & flags */
          ^
1072.     put_buffer(pb, hdlr, 4); /* handler */
1073.     put_tag(pb, hdlr_type); /* handler type */

libavformat/movenc.c:1072:5: Skipping put_buffer(): empty list of specs
1070.     put_tag(pb, "hdlr");
1071.     put_be32(pb, 0); /* Version & flags */
1072.     put_buffer(pb, hdlr, 4); /* handler */
          ^
1073.     put_tag(pb, hdlr_type); /* handler type */
1074.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:1073:5: Skipping put_tag(): empty list of specs
1071.     put_be32(pb, 0); /* Version & flags */
1072.     put_buffer(pb, hdlr, 4); /* handler */
1073.     put_tag(pb, hdlr_type); /* handler type */
          ^
1074.     put_be32(pb ,0); /* reserved */
1075.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:1074:5: Skipping put_be32(): empty list of specs
1072.     put_buffer(pb, hdlr, 4); /* handler */
1073.     put_tag(pb, hdlr_type); /* handler type */
1074.     put_be32(pb ,0); /* reserved */
          ^
1075.     put_be32(pb ,0); /* reserved */
1076.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:1075:5: Skipping put_be32(): empty list of specs
1073.     put_tag(pb, hdlr_type); /* handler type */
1074.     put_be32(pb ,0); /* reserved */
1075.     put_be32(pb ,0); /* reserved */
          ^
1076.     put_be32(pb ,0); /* reserved */
1077.     if (!track || track->mode == MODE_MOV)

libavformat/movenc.c:1076:5: Skipping put_be32(): empty list of specs
1074.     put_be32(pb ,0); /* reserved */
1075.     put_be32(pb ,0); /* reserved */
1076.     put_be32(pb ,0); /* reserved */
          ^
1077.     if (!track || track->mode == MODE_MOV)
1078.         put_byte(pb, strlen(descr)); /* pascal string */

libavformat/movenc.c:1077:10: Taking false branch
1075.     put_be32(pb ,0); /* reserved */
1076.     put_be32(pb ,0); /* reserved */
1077.     if (!track || track->mode == MODE_MOV)
               ^
1078.         put_byte(pb, strlen(descr)); /* pascal string */
1079.     put_buffer(pb, descr, strlen(descr)); /* handler description */

libavformat/movenc.c:1077:19: Taking true branch
1075.     put_be32(pb ,0); /* reserved */
1076.     put_be32(pb ,0); /* reserved */
1077.     if (!track || track->mode == MODE_MOV)
                        ^
1078.         put_byte(pb, strlen(descr)); /* pascal string */
1079.     put_buffer(pb, descr, strlen(descr)); /* handler description */

libavformat/movenc.c:1078:9: 
1076.     put_be32(pb ,0); /* reserved */
1077.     if (!track || track->mode == MODE_MOV)
1078.         put_byte(pb, strlen(descr)); /* pascal string */
              ^
1079.     put_buffer(pb, descr, strlen(descr)); /* handler description */
1080.     if (track && track->mode != MODE_MOV)
