Fix static analysis warnings

With this change the number of warnings of shallow analysis is 0 and of
deep analysis is 9. 5 of those 9 are in third_party and the other 4 are
due to pointer conversion

Change-Id: Ibd94f867f429024a7b4e2dbce05223a263994a24
diff --git a/aom_dsp/noise_model.c b/aom_dsp/noise_model.c
index 7e6a833..528efd9 100644
--- a/aom_dsp/noise_model.c
+++ b/aom_dsp/noise_model.c
@@ -214,6 +214,7 @@
 
 int aom_noise_strength_lut_init(aom_noise_strength_lut_t *lut, int num_points) {
   if (!lut) return 0;
+  lut->num_points = 0;
   lut->points = (double(*)[2])aom_malloc(num_points * sizeof(*lut->points));
   if (!lut->points) return 0;
   lut->num_points = num_points;
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h
index 8a069d8..e6c30c6 100644
--- a/av1/common/onyxc_int.h
+++ b/av1/common/onyxc_int.h
@@ -927,6 +927,8 @@
 
 static INLINE BLOCK_SIZE scale_chroma_bsize(BLOCK_SIZE bsize, int subsampling_x,
                                             int subsampling_y) {
+  assert(subsampling_x >= 0 && subsampling_x < 2);
+  assert(subsampling_y >= 0 && subsampling_y < 2);
   BLOCK_SIZE bs = bsize;
   switch (bsize) {
     case BLOCK_4X4:
diff --git a/av1/common/scale.h b/av1/common/scale.h
index 748e958..16b40bd 100644
--- a/av1/common/scale.h
+++ b/av1/common/scale.h
@@ -45,11 +45,13 @@
                                        int other_h, int this_w, int this_h);
 
 static INLINE int av1_is_valid_scale(const struct scale_factors *sf) {
+  assert(sf != NULL);
   return sf->x_scale_fp != REF_INVALID_SCALE &&
          sf->y_scale_fp != REF_INVALID_SCALE;
 }
 
 static INLINE int av1_is_scaled(const struct scale_factors *sf) {
+  assert(sf != NULL);
   return av1_is_valid_scale(sf) &&
          (sf->x_scale_fp != REF_NO_SCALE || sf->y_scale_fp != REF_NO_SCALE);
 }
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 7849a5c..d03601f 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -1779,7 +1779,11 @@
     partition = get_partition(cm, mi_row, mi_col, bsize);
   }
   subsize = get_partition_subsize(bsize, partition);
-
+  if (subsize == BLOCK_INVALID) {
+    aom_internal_error(xd->error_info, AOM_CODEC_CORRUPT_FRAME,
+                       "Partition is invalid for block size %dx%d",
+                       block_size_wide[bsize], block_size_high[bsize]);
+  }
   // Check the bitstream is conformant: if there is subsampling on the
   // chroma planes, subsize must subsample to a valid block size.
   const struct macroblockd_plane *const pd_u = &xd->plane[1];
diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c
index 808b8b7..10d7b25 100644
--- a/av1/encoder/encodemb.c
+++ b/av1/encoder/encodemb.c
@@ -484,7 +484,6 @@
   for (plane = 0; plane < num_planes; ++plane) {
     const int subsampling_x = xd->plane[plane].subsampling_x;
     const int subsampling_y = xd->plane[plane].subsampling_y;
-
     if (!is_chroma_reference(mi_row, mi_col, bsize, subsampling_x,
                              subsampling_y))
       continue;
@@ -496,6 +495,7 @@
     const struct macroblockd_plane *const pd = &xd->plane[plane];
     const BLOCK_SIZE plane_bsize =
         get_plane_block_size(bsizec, pd->subsampling_x, pd->subsampling_y);
+    assert(plane_bsize < BLOCK_SIZES_ALL);
     const int mi_width = block_size_wide[plane_bsize] >> tx_size_wide_log2[0];
     const int mi_height = block_size_high[plane_bsize] >> tx_size_high_log2[0];
     const TX_SIZE max_tx_size = get_vartx_max_txsize(xd, plane_bsize, plane);
diff --git a/av1/encoder/ransac.c b/av1/encoder/ransac.c
index 6a8854c..b490994 100644
--- a/av1/encoder/ransac.c
+++ b/av1/encoder/ransac.c
@@ -265,8 +265,10 @@
 }
 
 static int find_affine(int np, double *pts1, double *pts2, double *mat) {
+  assert(np > 0);
   const int np2 = np * 2;
   double *a = (double *)aom_malloc(sizeof(*a) * (np2 * 7 + 42));
+  if (a == NULL) return 1;
   double *b = a + np2 * 6;
   double *temp = b + np2;
   int i;
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index d3349bb..3741e1c 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2197,8 +2197,13 @@
   diff += ((blk_row * diff_stride + blk_col) << tx_size_wide_log2[0]);
   uint64_t sse =
       aom_sum_squares_2d_i16(diff, diff_stride, visible_cols, visible_rows);
-  if (block_mse_q8 != NULL)
-    *block_mse_q8 = (unsigned int)((256 * sse) / (visible_cols * visible_rows));
+  if (block_mse_q8 != NULL) {
+    if (visible_cols > 0 && visible_rows > 0)
+      *block_mse_q8 =
+          (unsigned int)((256 * sse) / (visible_cols * visible_rows));
+    else
+      *block_mse_q8 = UINT_MAX;
+  }
   return sse;
 }
 
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c
index 9b8e0eb..dc25ecd 100644
--- a/av1/encoder/tokenize.c
+++ b/av1/encoder/tokenize.c
@@ -216,6 +216,7 @@
         scale_chroma_bsize(bsize, pd->subsampling_x, pd->subsampling_y);
     const BLOCK_SIZE plane_bsize =
         get_plane_block_size(bsizec, pd->subsampling_x, pd->subsampling_y);
+    assert(plane_bsize < BLOCK_SIZES_ALL);
     const int mi_width = block_size_wide[plane_bsize] >> tx_size_wide_log2[0];
     const int mi_height = block_size_high[plane_bsize] >> tx_size_high_log2[0];
     const TX_SIZE max_tx_size = get_vartx_max_txsize(xd, plane_bsize, plane);
diff --git a/common/obudec.c b/common/obudec.c
index bd9f98d..1ce218d 100644
--- a/common/obudec.c
+++ b/common/obudec.c
@@ -438,13 +438,15 @@
     return -1;
   }
 #endif
-  uint8_t *new_buffer = (uint8_t *)realloc(*buffer, tu_size);
-  if (!new_buffer) {
-    free(*buffer);
-    fprintf(stderr, "obudec: Out of memory.\n");
-    return -1;
+  if (tu_size > 0) {
+    uint8_t *new_buffer = (uint8_t *)realloc(*buffer, tu_size);
+    if (!new_buffer) {
+      free(*buffer);
+      fprintf(stderr, "obudec: Out of memory.\n");
+      return -1;
+    }
+    *buffer = new_buffer;
   }
-  *buffer = new_buffer;
   *bytes_read = tu_size;
   *buffer_size = tu_size;
 
diff --git a/test/av1_inv_txfm1d_test.cc b/test/av1_inv_txfm1d_test.cc
index bf3a44e..2926ae6 100644
--- a/test/av1_inv_txfm1d_test.cc
+++ b/test/av1_inv_txfm1d_test.cc
@@ -88,9 +88,11 @@
     memset(input + 32, 0, 32 * sizeof(input[0]));
 
     int32_t ref_output[64];
+    memset(ref_output, 0, sizeof(ref_output));
     reference_idct_1d_int(input, ref_output, tx_size_pix);
 
     int32_t output[64];
+    memset(output, 0, sizeof(output));
     inv_txfm_func(input, output, cos_bit, range_bit);
 
     for (int i = 0; i < tx_size_pix; ++i) {