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

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

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

libavformat/movenc.c:909:5: 
907. {
908.     const char *hdlr, *descr = NULL, *hdlr_type = NULL;
909.     int64_t pos = url_ftell(pb);
         ^
910. 
911.     if (!track) { /* no media --> data handler */

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

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

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

libavformat/movenc.c:911:10: Taking false branch
909.     int64_t pos = url_ftell(pb);
910. 
911.     if (!track) { /* no media --> data handler */
              ^
912.         hdlr = "dhlr";
913.         hdlr_type = "url ";

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

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

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

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

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

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

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

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

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

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

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

libavformat/movenc.c:935:5: Skipping put_be32(): empty list of specs
933.     put_buffer(pb, hdlr, 4); /* handler */
934.     put_tag(pb, hdlr_type); /* handler type */
935.     put_be32(pb ,0); /* reserved */
         ^
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_tag(pb, hdlr_type); /* handler type */
935.     put_be32(pb ,0); /* reserved */
936.     put_be32(pb ,0); /* reserved */
         ^
937.     put_be32(pb ,0); /* reserved */
938.     put_byte(pb, strlen(descr)); /* string counter */

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

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