libavformat/matroskadec.c:915: error: Memory Leak
  memory dynamically allocated by call to `av_realloc()` at line 915, column 24 is not reachable after line 915, column 13.

libavformat/matroskadec.c:882:1: start of procedure matroska_decode_buffer()
880. }
881. 
882. static int matroska_decode_buffer(uint8_t** buf, int* buf_size,
     ^
883.                                   MatroskaTrack *track)
884. {

libavformat/matroskadec.c:885:5: 
883.                                   MatroskaTrack *track)
884. {
885.     MatroskaTrackEncoding *encodings = track->encodings.elem;
         ^
886.     uint8_t* data = *buf;
887.     int isize = *buf_size;

libavformat/matroskadec.c:886:5: 
884. {
885.     MatroskaTrackEncoding *encodings = track->encodings.elem;
886.     uint8_t* data = *buf;
         ^
887.     int isize = *buf_size;
888.     uint8_t* pkt_data = NULL;

libavformat/matroskadec.c:887:5: 
885.     MatroskaTrackEncoding *encodings = track->encodings.elem;
886.     uint8_t* data = *buf;
887.     int isize = *buf_size;
         ^
888.     uint8_t* pkt_data = NULL;
889.     int pkt_size = isize;

libavformat/matroskadec.c:888:5: 
886.     uint8_t* data = *buf;
887.     int isize = *buf_size;
888.     uint8_t* pkt_data = NULL;
         ^
889.     int pkt_size = isize;
890.     int result = 0;

libavformat/matroskadec.c:889:5: 
887.     int isize = *buf_size;
888.     uint8_t* pkt_data = NULL;
889.     int pkt_size = isize;
         ^
890.     int result = 0;
891.     int olen;

libavformat/matroskadec.c:890:5: 
888.     uint8_t* pkt_data = NULL;
889.     int pkt_size = isize;
890.     int result = 0;
         ^
891.     int olen;
892. 

libavformat/matroskadec.c:893:5: 
891.     int olen;
892. 
893.     switch (encodings[0].compression.algo) {
         ^
894.     case MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP:
895.         return encodings[0].compression.settings.size;

libavformat/matroskadec.c:894:5: Switch condition is false. Skipping switch case
892. 
893.     switch (encodings[0].compression.algo) {
894.     case MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP:
         ^
895.         return encodings[0].compression.settings.size;
896.     case MATROSKA_TRACK_ENCODING_COMP_LZO:

libavformat/matroskadec.c:896:5: Switch condition is false. Skipping switch case
894.     case MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP:
895.         return encodings[0].compression.settings.size;
896.     case MATROSKA_TRACK_ENCODING_COMP_LZO:
         ^
897.         do {
898.             olen = pkt_size *= 3;

libavformat/matroskadec.c:907:5: Switch condition is true. Entering switch case
905.         break;
906. #if CONFIG_ZLIB
907.     case MATROSKA_TRACK_ENCODING_COMP_ZLIB: {
         ^
908.         z_stream zstream = {0};
909.         if (inflateInit(&zstream) != Z_OK)

libavformat/matroskadec.c:908:9: 
906. #if CONFIG_ZLIB
907.     case MATROSKA_TRACK_ENCODING_COMP_ZLIB: {
908.         z_stream zstream = {0};
             ^
909.         if (inflateInit(&zstream) != Z_OK)
910.             return -1;

libavformat/matroskadec.c:909:13: Taking false branch
907.     case MATROSKA_TRACK_ENCODING_COMP_ZLIB: {
908.         z_stream zstream = {0};
909.         if (inflateInit(&zstream) != Z_OK)
                 ^
910.             return -1;
911.         zstream.next_in = data;

libavformat/matroskadec.c:911:9: 
909.         if (inflateInit(&zstream) != Z_OK)
910.             return -1;
911.         zstream.next_in = data;
             ^
912.         zstream.avail_in = isize;
913.         do {

libavformat/matroskadec.c:912:9: 
910.             return -1;
911.         zstream.next_in = data;
912.         zstream.avail_in = isize;
             ^
913.         do {
914.             pkt_size *= 3;

libavformat/matroskadec.c:914:13: 
912.         zstream.avail_in = isize;
913.         do {
914.             pkt_size *= 3;
                 ^
915.             pkt_data = av_realloc(pkt_data, pkt_size);
916.             zstream.avail_out = pkt_size - zstream.total_out;

libavformat/matroskadec.c:915:13: 
913.         do {
914.             pkt_size *= 3;
915.             pkt_data = av_realloc(pkt_data, pkt_size);
                 ^
916.             zstream.avail_out = pkt_size - zstream.total_out;
917.             zstream.next_out = pkt_data + zstream.total_out;

libavutil/mem.c:119:1: start of procedure av_realloc()
  117. }
  118. 
  119. void *av_realloc(void *ptr, unsigned int size)
       ^
  120. {
  121. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:126:8: Taking false branch
  124. 
  125.     /* let's disallow possible ambiguous cases */
  126.     if(size > (INT_MAX-16) )
              ^
  127.         return NULL;
  128. 

libavutil/mem.c:135:5: 
  133.     return (char*)realloc((char*)ptr - diff, size + diff) + diff;
  134. #else
  135.     return realloc(ptr, size);
           ^
  136. #endif
  137. }

libavutil/mem.c:137:1: return from a call to av_realloc
  135.     return realloc(ptr, size);
  136. #endif
  137. }
       ^
  138. 
  139. void av_free(void *ptr)

libavformat/matroskadec.c:916:13: 
914.             pkt_size *= 3;
915.             pkt_data = av_realloc(pkt_data, pkt_size);
916.             zstream.avail_out = pkt_size - zstream.total_out;
                 ^
917.             zstream.next_out = pkt_data + zstream.total_out;
918.             result = inflate(&zstream, Z_NO_FLUSH);

libavformat/matroskadec.c:917:13: 
915.             pkt_data = av_realloc(pkt_data, pkt_size);
916.             zstream.avail_out = pkt_size - zstream.total_out;
917.             zstream.next_out = pkt_data + zstream.total_out;
                 ^
918.             result = inflate(&zstream, Z_NO_FLUSH);
919.         } while (result==Z_OK && pkt_size<10000000);

libavformat/matroskadec.c:918:13: Skipping inflate(): method has no implementation
916.             zstream.avail_out = pkt_size - zstream.total_out;
917.             zstream.next_out = pkt_data + zstream.total_out;
918.             result = inflate(&zstream, Z_NO_FLUSH);
                 ^
919.         } while (result==Z_OK && pkt_size<10000000);
920.         pkt_size = zstream.total_out;

libavformat/matroskadec.c:919:18: Loop condition is true. Entering loop body
917.             zstream.next_out = pkt_data + zstream.total_out;
918.             result = inflate(&zstream, Z_NO_FLUSH);
919.         } while (result==Z_OK && pkt_size<10000000);
                      ^
920.         pkt_size = zstream.total_out;
921.         inflateEnd(&zstream);

libavformat/matroskadec.c:919:34: Loop condition is true. Entering loop body
917.             zstream.next_out = pkt_data + zstream.total_out;
918.             result = inflate(&zstream, Z_NO_FLUSH);
919.         } while (result==Z_OK && pkt_size<10000000);
                                      ^
920.         pkt_size = zstream.total_out;
921.         inflateEnd(&zstream);

libavformat/matroskadec.c:914:13: 
912.         zstream.avail_in = isize;
913.         do {
914.             pkt_size *= 3;
                 ^
915.             pkt_data = av_realloc(pkt_data, pkt_size);
916.             zstream.avail_out = pkt_size - zstream.total_out;

libavformat/matroskadec.c:915:13: 
913.         do {
914.             pkt_size *= 3;
915.             pkt_data = av_realloc(pkt_data, pkt_size);
                 ^
916.             zstream.avail_out = pkt_size - zstream.total_out;
917.             zstream.next_out = pkt_data + zstream.total_out;

libavutil/mem.c:119:1: start of procedure av_realloc()
  117. }
  118. 
  119. void *av_realloc(void *ptr, unsigned int size)
       ^
  120. {
  121. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:126:8: Taking true branch
  124. 
  125.     /* let's disallow possible ambiguous cases */
  126.     if(size > (INT_MAX-16) )
              ^
  127.         return NULL;
  128. 

libavutil/mem.c:127:9: 
  125.     /* let's disallow possible ambiguous cases */
  126.     if(size > (INT_MAX-16) )
  127.         return NULL;
               ^
  128. 
  129. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:137:1: return from a call to av_realloc
  135.     return realloc(ptr, size);
  136. #endif
  137. }
       ^
  138. 
  139. void av_free(void *ptr)
