libavcodec/mpegvideo.c:1098: error: Null Dereference
  pointer `s->mb_index2xy` last assigned on line 1092 could be null and is dereferenced at line 1098, column 5.

libavcodec/mpegvideo.c:1063:1: start of procedure init_context_frame()
1061.  * Initialize and allocates MpegEncContext fields dependent on the resolution.
1062.  */
1063. static int init_context_frame(MpegEncContext *s)
      ^
1064. {
1065.     int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y;

libavcodec/mpegvideo.c:1067:5: 
1065.     int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y;
1066. 
1067.     s->mb_width   = (s->width + 15) / 16;
          ^
1068.     s->mb_stride  = s->mb_width + 1;
1069.     s->b8_stride  = s->mb_width * 2 + 1;

libavcodec/mpegvideo.c:1068:5: 
1066. 
1067.     s->mb_width   = (s->width + 15) / 16;
1068.     s->mb_stride  = s->mb_width + 1;
          ^
1069.     s->b8_stride  = s->mb_width * 2 + 1;
1070.     s->b4_stride  = s->mb_width * 4 + 1;

libavcodec/mpegvideo.c:1069:5: 
1067.     s->mb_width   = (s->width + 15) / 16;
1068.     s->mb_stride  = s->mb_width + 1;
1069.     s->b8_stride  = s->mb_width * 2 + 1;
          ^
1070.     s->b4_stride  = s->mb_width * 4 + 1;
1071.     mb_array_size = s->mb_height * s->mb_stride;

libavcodec/mpegvideo.c:1070:5: 
1068.     s->mb_stride  = s->mb_width + 1;
1069.     s->b8_stride  = s->mb_width * 2 + 1;
1070.     s->b4_stride  = s->mb_width * 4 + 1;
          ^
1071.     mb_array_size = s->mb_height * s->mb_stride;
1072.     mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;

libavcodec/mpegvideo.c:1071:5: 
1069.     s->b8_stride  = s->mb_width * 2 + 1;
1070.     s->b4_stride  = s->mb_width * 4 + 1;
1071.     mb_array_size = s->mb_height * s->mb_stride;
          ^
1072.     mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;
1073. 

libavcodec/mpegvideo.c:1072:5: 
1070.     s->b4_stride  = s->mb_width * 4 + 1;
1071.     mb_array_size = s->mb_height * s->mb_stride;
1072.     mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;
          ^
1073. 
1074.     /* set default edge pos, will be overriden

libavcodec/mpegvideo.c:1076:5: 
1074.     /* set default edge pos, will be overriden
1075.      * in decode_header if needed */
1076.     s->h_edge_pos = s->mb_width * 16;
          ^
1077.     s->v_edge_pos = s->mb_height * 16;
1078. 

libavcodec/mpegvideo.c:1077:5: 
1075.      * in decode_header if needed */
1076.     s->h_edge_pos = s->mb_width * 16;
1077.     s->v_edge_pos = s->mb_height * 16;
          ^
1078. 
1079.     s->mb_num     = s->mb_width * s->mb_height;

libavcodec/mpegvideo.c:1079:5: 
1077.     s->v_edge_pos = s->mb_height * 16;
1078. 
1079.     s->mb_num     = s->mb_width * s->mb_height;
          ^
1080. 
1081.     s->block_wrap[0] =

libavcodec/mpegvideo.c:1081:5: 
1079.     s->mb_num     = s->mb_width * s->mb_height;
1080. 
1081.     s->block_wrap[0] =
          ^
1082.     s->block_wrap[1] =
1083.     s->block_wrap[2] =

libavcodec/mpegvideo.c:1085:5: 
1083.     s->block_wrap[2] =
1084.     s->block_wrap[3] = s->b8_stride;
1085.     s->block_wrap[4] =
          ^
1086.     s->block_wrap[5] = s->mb_stride;
1087. 

libavcodec/mpegvideo.c:1088:5: 
1086.     s->block_wrap[5] = s->mb_stride;
1087. 
1088.     y_size  = s->b8_stride * (2 * s->mb_height + 1);
          ^
1089.     c_size  = s->mb_stride * (s->mb_height + 1);
1090.     yc_size = y_size + 2   * c_size;

libavcodec/mpegvideo.c:1089:5: 
1087. 
1088.     y_size  = s->b8_stride * (2 * s->mb_height + 1);
1089.     c_size  = s->mb_stride * (s->mb_height + 1);
          ^
1090.     yc_size = y_size + 2   * c_size;
1091. 

libavcodec/mpegvideo.c:1090:5: 
1088.     y_size  = s->b8_stride * (2 * s->mb_height + 1);
1089.     c_size  = s->mb_stride * (s->mb_height + 1);
1090.     yc_size = y_size + 2   * c_size;
          ^
1091. 
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),

libavcodec/mpegvideo.c:1092:5: 
1090.     yc_size = y_size + 2   * c_size;
1091. 
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),
          ^
1093.                       fail); // error ressilience code looks cleaner with this
1094.     for (y = 0; y < s->mb_height; y++)

libavutil/mem.c:205:1: start of procedure av_mallocz()
  203. }
  204. 
  205. void *av_mallocz(size_t size)
       ^
  206. {
  207.     void *ptr = av_malloc(size);

libavutil/mem.c:207:5: 
  205. void *av_mallocz(size_t size)
  206. {
  207.     void *ptr = av_malloc(size);
           ^
  208.     if (ptr)
  209.         memset(ptr, 0, size);

libavutil/mem.c:62:1: start of procedure av_malloc()
    60.  * linker will do it automatically. */
    61. 
    62. void *av_malloc(size_t size)
        ^
    63. {
    64.     void *ptr = NULL;

libavutil/mem.c:64:5: 
    62. void *av_malloc(size_t size)
    63. {
    64.     void *ptr = NULL;
            ^
    65. #if CONFIG_MEMALIGN_HACK
    66.     long diff;

libavutil/mem.c:70:9: Taking true branch
    68. 
    69.     /* let's disallow possibly ambiguous cases */
    70.     if (size > (INT_MAX - 32) || !size)
                ^
    71.         return NULL;
    72. 

libavutil/mem.c:71:9: 
    69.     /* let's disallow possibly ambiguous cases */
    70.     if (size > (INT_MAX - 32) || !size)
    71.         return NULL;
                ^
    72. 
    73. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:115:1: return from a call to av_malloc
    113. #endif
    114.     return ptr;
    115. }
         ^
    116. 
    117. void *av_realloc(void *ptr, size_t size)

libavutil/mem.c:208:9: Taking false branch
  206. {
  207.     void *ptr = av_malloc(size);
  208.     if (ptr)
               ^
  209.         memset(ptr, 0, size);
  210.     return ptr;

libavutil/mem.c:210:5: 
  208.     if (ptr)
  209.         memset(ptr, 0, size);
  210.     return ptr;
           ^
  211. }
  212. 

libavutil/mem.c:211:1: return from a call to av_mallocz
  209.         memset(ptr, 0, size);
  210.     return ptr;
  211. }
       ^
  212. 
  213. char *av_strdup(const char *s)

libavcodec/mpegvideo.c:1092:5: Taking true branch
1090.     yc_size = y_size + 2   * c_size;
1091. 
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),
          ^
1093.                       fail); // error ressilience code looks cleaner with this
1094.     for (y = 0; y < s->mb_height; y++)

libavcodec/mpegvideo.c:1092:5: Taking false branch
1090.     yc_size = y_size + 2   * c_size;
1091. 
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),
          ^
1093.                       fail); // error ressilience code looks cleaner with this
1094.     for (y = 0; y < s->mb_height; y++)

libavcodec/mpegvideo.c:1094:10: 
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),
1093.                       fail); // error ressilience code looks cleaner with this
1094.     for (y = 0; y < s->mb_height; y++)
               ^
1095.         for (x = 0; x < s->mb_width; x++)
1096.             s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;

libavcodec/mpegvideo.c:1094:17: Loop condition is false. Leaving loop
1092.     FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),
1093.                       fail); // error ressilience code looks cleaner with this
1094.     for (y = 0; y < s->mb_height; y++)
                      ^
1095.         for (x = 0; x < s->mb_width; x++)
1096.             s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;

libavcodec/mpegvideo.c:1098:5: 
1096.             s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;
1097. 
1098.     s->mb_index2xy[s->mb_height * s->mb_width] =
          ^
1099.         (s->mb_height - 1) * s->mb_stride + s->mb_width; // FIXME really needed?
1100. 
