diff --git a/third_party/fastfeat/README.libaom b/third_party/fastfeat/README.libaom
index a732b0d..ce7ce70 100644
--- a/third_party/fastfeat/README.libaom
+++ b/third_party/fastfeat/README.libaom
@@ -38,3 +38,4 @@
 Remove Fast 10, 11 and 12
 Convert tabs to spaces
 Prefix global functions with "aom_"
+Add error checking
diff --git a/third_party/fastfeat/fast_9.c b/third_party/fastfeat/fast_9.c
index c0fdbe2..345c37f 100644
--- a/third_party/fastfeat/fast_9.c
+++ b/third_party/fastfeat/fast_9.c
@@ -2994,6 +2994,7 @@
   int n;
 
   int pixel[16];
+  if(!scores) return NULL;
   make_offsets(pixel, stride);
 
   for(n=0; n < num_corners; n++)
@@ -3012,6 +3013,7 @@
   int x, y;
 
   ret_corners = (xy*)malloc(sizeof(xy)*rsize);
+  if(!ret_corners) return NULL;
   make_offsets(pixel, stride);
 
   for(y=3; y < ysize - 3; y++)
@@ -5926,6 +5928,7 @@
       {
         rsize*=2;
         ret_corners = (xy*)realloc(ret_corners, sizeof(xy)*rsize);
+        if(!ret_corners) return NULL;
       }
       ret_corners[num_corners].x = x;
       ret_corners[num_corners].y = y;
diff --git a/third_party/fastfeat/nonmax.c b/third_party/fastfeat/nonmax.c
index 2e048e5..39ec18c 100644
--- a/third_party/fastfeat/nonmax.c
+++ b/third_party/fastfeat/nonmax.c
@@ -49,20 +49,28 @@
   int point_above = 0;
   int point_below = 0;
 
-
-  if(num_corners < 1)
+  *ret_num_nonmax = 0;
+  if(!(corners && scores) || num_corners < 1)
   {
-    *ret_num_nonmax = 0;
     return 0;
   }
 
   ret_nonmax = (xy*)malloc(num_corners * sizeof(xy));
+  if(!ret_nonmax)
+  {
+    return 0;
+  }
 
   /* Find where each row begins
      (the corners are output in raster scan order). A beginning of -1 signifies
      that there are no corners on that row. */
   last_row = corners[num_corners-1].y;
   row_start = (int*)malloc((last_row+1)*sizeof(int));
+  if(!row_start)
+  {
+    free(ret_nonmax);
+    return 0;
+  }
 
   for(i=0; i < last_row+1; i++)
     row_start[i] = -1;
