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

libavformat/movenc.c:915:1: start of procedure mov_write_hdlr_tag()
913. }
914. 
915. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
     ^
916. {
917.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;

libavformat/movenc.c:917:5: 
915. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
916. {
917.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
         ^
918.     int64_t pos = url_ftell(pb);
919. 

libavformat/movenc.c:918:5: 
916. {
917.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
918.     int64_t pos = url_ftell(pb);
         ^
919. 
920.     if (!track) { /* no media --> data handler */

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

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

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

libavformat/movenc.c:920:10: Taking false branch
918.     int64_t pos = url_ftell(pb);
919. 
920.     if (!track) { /* no media --> data handler */
              ^
921.         hdlr = "dhlr";
922.         hdlr_type = "url ";

libavformat/movenc.c:925:17: Condition is false
923.         descr = "DataHandler";
924.     } else {
925.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                     ^
926.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
927.             hdlr_type = "vide";

libavformat/movenc.c:925:16: 
923.         descr = "DataHandler";
924.     } else {
925.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                    ^
926.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
927.             hdlr_type = "vide";

libavformat/movenc.c:925:9: 
923.         descr = "DataHandler";
924.     } else {
925.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
             ^
926.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
927.             hdlr_type = "vide";

libavformat/movenc.c:926:13: Taking false branch
924.     } else {
925.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
926.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
                 ^
927.             hdlr_type = "vide";
928.             descr = "VideoHandler";

libavformat/movenc.c:929:20: Taking false branch
927.             hdlr_type = "vide";
928.             descr = "VideoHandler";
929.         } else if (track->enc->codec_type == CODEC_TYPE_AUDIO) {
                        ^
930.             hdlr_type = "soun";
931.             descr = "SoundHandler";

libavformat/movenc.c:932:20: Taking false branch
930.             hdlr_type = "soun";
931.             descr = "SoundHandler";
932.         } else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
                        ^
933.             if (track->tag == MKTAG('t','x','3','g')) hdlr_type = "sbtl";
934.             else                                      hdlr_type = "text";

libavformat/movenc.c:939:5: Skipping put_be32(): empty list of specs
937.     }
938. 
939.     put_be32(pb, 0); /* size */
         ^
940.     put_tag(pb, "hdlr");
941.     put_be32(pb, 0); /* Version & flags */

libavformat/movenc.c:940:5: Skipping put_tag(): empty list of specs
938. 
939.     put_be32(pb, 0); /* size */
940.     put_tag(pb, "hdlr");
         ^
941.     put_be32(pb, 0); /* Version & flags */
942.     put_buffer(pb, hdlr, 4); /* handler */

libavformat/movenc.c:941:5: Skipping put_be32(): empty list of specs
939.     put_be32(pb, 0); /* size */
940.     put_tag(pb, "hdlr");
941.     put_be32(pb, 0); /* Version & flags */
         ^
942.     put_buffer(pb, hdlr, 4); /* handler */
943.     put_tag(pb, hdlr_type); /* handler type */

libavformat/movenc.c:942:5: Skipping put_buffer(): empty list of specs
940.     put_tag(pb, "hdlr");
941.     put_be32(pb, 0); /* Version & flags */
942.     put_buffer(pb, hdlr, 4); /* handler */
         ^
943.     put_tag(pb, hdlr_type); /* handler type */
944.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:943:5: Skipping put_tag(): empty list of specs
941.     put_be32(pb, 0); /* Version & flags */
942.     put_buffer(pb, hdlr, 4); /* handler */
943.     put_tag(pb, hdlr_type); /* handler type */
         ^
944.     put_be32(pb ,0); /* reserved */
945.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:944:5: Skipping put_be32(): empty list of specs
942.     put_buffer(pb, hdlr, 4); /* handler */
943.     put_tag(pb, hdlr_type); /* handler type */
944.     put_be32(pb ,0); /* reserved */
         ^
945.     put_be32(pb ,0); /* reserved */
946.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:945:5: Skipping put_be32(): empty list of specs
943.     put_tag(pb, hdlr_type); /* handler type */
944.     put_be32(pb ,0); /* reserved */
945.     put_be32(pb ,0); /* reserved */
         ^
946.     put_be32(pb ,0); /* reserved */
947.     put_byte(pb, strlen(descr)); /* string counter */

libavformat/movenc.c:946:5: Skipping put_be32(): empty list of specs
944.     put_be32(pb ,0); /* reserved */
945.     put_be32(pb ,0); /* reserved */
946.     put_be32(pb ,0); /* reserved */
         ^
947.     put_byte(pb, strlen(descr)); /* string counter */
948.     put_buffer(pb, descr, strlen(descr)); /* handler description */

libavformat/movenc.c:947:5: 
945.     put_be32(pb ,0); /* reserved */
946.     put_be32(pb ,0); /* reserved */
947.     put_byte(pb, strlen(descr)); /* string counter */
         ^
948.     put_buffer(pb, descr, strlen(descr)); /* handler description */
949.     return updateSize(pb, pos);
