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

libavformat/movenc.c:907:1: start of procedure mov_write_hdlr_tag()
905. }
906. 
907. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
     ^
908. {
909.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;

libavformat/movenc.c:909:5: 
907. static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
908. {
909.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
         ^
910.     int64_t pos = url_ftell(pb);
911. 

libavformat/movenc.c:910:5: 
908. {
909.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
910.     int64_t pos = url_ftell(pb);
         ^
911. 
912.     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:912:10: Taking false branch
910.     int64_t pos = url_ftell(pb);
911. 
912.     if (!track) { /* no media --> data handler */
              ^
913.         hdlr = "dhlr";
914.         hdlr_type = "url ";

libavformat/movenc.c:917:17: Condition is false
915.         descr = "DataHandler";
916.     } else {
917.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                     ^
918.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
919.             hdlr_type = "vide";

libavformat/movenc.c:917:16: 
915.         descr = "DataHandler";
916.     } else {
917.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
                    ^
918.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
919.             hdlr_type = "vide";

libavformat/movenc.c:917:9: 
915.         descr = "DataHandler";
916.     } else {
917.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
             ^
918.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
919.             hdlr_type = "vide";

libavformat/movenc.c:918:13: Taking false branch
916.     } else {
917.         hdlr = (track->mode == MODE_MOV) ? "mhlr" : "\0\0\0\0";
918.         if (track->enc->codec_type == CODEC_TYPE_VIDEO) {
                 ^
919.             hdlr_type = "vide";
920.             descr = "VideoHandler";

libavformat/movenc.c:921:20: Taking false branch
919.             hdlr_type = "vide";
920.             descr = "VideoHandler";
921.         } else if (track->enc->codec_type == CODEC_TYPE_AUDIO) {
                        ^
922.             hdlr_type = "soun";
923.             descr = "SoundHandler";

libavformat/movenc.c:924:20: Taking false branch
922.             hdlr_type = "soun";
923.             descr = "SoundHandler";
924.         } else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
                        ^
925.             if (track->mode == MODE_IPOD) hdlr_type = "sbtl";
926.             else                          hdlr_type = "text";

libavformat/movenc.c:931:5: Skipping put_be32(): empty list of specs
929.     }
930. 
931.     put_be32(pb, 0); /* size */
         ^
932.     put_tag(pb, "hdlr");
933.     put_be32(pb, 0); /* Version & flags */

libavformat/movenc.c:932:5: Skipping put_tag(): empty list of specs
930. 
931.     put_be32(pb, 0); /* size */
932.     put_tag(pb, "hdlr");
         ^
933.     put_be32(pb, 0); /* Version & flags */
934.     put_buffer(pb, hdlr, 4); /* handler */

libavformat/movenc.c:933:5: Skipping put_be32(): empty list of specs
931.     put_be32(pb, 0); /* size */
932.     put_tag(pb, "hdlr");
933.     put_be32(pb, 0); /* Version & flags */
         ^
934.     put_buffer(pb, hdlr, 4); /* handler */
935.     put_tag(pb, hdlr_type); /* handler type */

libavformat/movenc.c:934:5: Skipping put_buffer(): empty list of specs
932.     put_tag(pb, "hdlr");
933.     put_be32(pb, 0); /* Version & flags */
934.     put_buffer(pb, hdlr, 4); /* handler */
         ^
935.     put_tag(pb, hdlr_type); /* handler type */
936.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:935:5: Skipping put_tag(): empty list of specs
933.     put_be32(pb, 0); /* Version & flags */
934.     put_buffer(pb, hdlr, 4); /* handler */
935.     put_tag(pb, hdlr_type); /* handler type */
         ^
936.     put_be32(pb ,0); /* reserved */
937.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:936:5: Skipping put_be32(): empty list of specs
934.     put_buffer(pb, hdlr, 4); /* handler */
935.     put_tag(pb, hdlr_type); /* handler type */
936.     put_be32(pb ,0); /* reserved */
         ^
937.     put_be32(pb ,0); /* reserved */
938.     put_be32(pb ,0); /* reserved */

libavformat/movenc.c:937:5: Skipping put_be32(): empty list of specs
935.     put_tag(pb, hdlr_type); /* handler type */
936.     put_be32(pb ,0); /* reserved */
937.     put_be32(pb ,0); /* reserved */
         ^
938.     put_be32(pb ,0); /* reserved */
939.     put_byte(pb, strlen(descr)); /* string counter */

libavformat/movenc.c:938:5: Skipping put_be32(): empty list of specs
936.     put_be32(pb ,0); /* reserved */
937.     put_be32(pb ,0); /* reserved */
938.     put_be32(pb ,0); /* reserved */
         ^
939.     put_byte(pb, strlen(descr)); /* string counter */
940.     put_buffer(pb, descr, strlen(descr)); /* handler description */

libavformat/movenc.c:939:5: 
937.     put_be32(pb ,0); /* reserved */
938.     put_be32(pb ,0); /* reserved */
939.     put_byte(pb, strlen(descr)); /* string counter */
         ^
940.     put_buffer(pb, descr, strlen(descr)); /* handler description */
941.     return updateSize(pb, pos);
