  }
  #endif//!defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_ANDROID)
 diff --git a/src/utils/SkPolyUtils.cpp b/src/utils/SkPolyUtils.cpp
-index b76d270..b57cede 100644
+index 290fa68f2d..de6cdd84da 100644
 --- a/src/utils/SkPolyUtils.cpp
 +++ b/src/utils/SkPolyUtils.cpp
-@@ -346,6 +346,11 @@ bool SkInsetConvexPolygon(const SkPoint* inputPolygonVerts, int inputPolygonSize
-     if (inputPolygonSize < 3) {
+@@ -347,6 +347,12 @@ bool SkInsetConvexPolygon(const SkPoint* inputPolygonVerts, int inputPolygonSize
          return false;
      }
+ 
 +#if defined(IS_FUZZING)
 +    if (inputPolygonSize > 500) {
 +        return false;
 +    }
 +#endif
- 
-     // get winding direction
-     int winding = SkGetPolygonWinding(inputPolygonVerts, inputPolygonSize);
++
+     // restrict this to match other routines
+     // practically we don't want anything bigger than this anyway
+     if (inputPolygonSize >= (1 << 16)) {
 diff --git a/src/utils/SkShadowTessellator.cpp b/src/utils/SkShadowTessellator.cpp
-index b485f3f..8ce24c0 100644
+index b485f3f68c..8ce24c0879 100644
 --- a/src/utils/SkShadowTessellator.cpp
 +++ b/src/utils/SkShadowTessellator.cpp
 @@ -504,6 +504,11 @@ bool SkBaseShadowTessellator::addArc(const SkVector& nextNormal, bool finishArc)

 
 /*  Format:
diff --git a/src/core/SkScan_AAAPath.cpp b/src/core/SkScan_AAAPath.cpp
index 9dbb271..1f2602d 100644
--- a/src/core/SkScan_AAAPath.cpp
+++ b/src/core/SkScan_AAAPath.cpp
@@ -1588,6 +1588,11 @@ static SK_ALWAYS_INLINE void aaa_fill_path(const SkPath& path, const SkIRect& cl

             int L = SkFixedRoundToInt(left);
             int R = SkFixedRoundToInt(rite);
diff --git a/src/effects/Sk1DPathEffect.cpp b/src/effects/Sk1DPathEffect.cpp
index 9195933444..1d1538b03b 100644
--- a/src/effects/Sk1DPathEffect.cpp
+++ b/src/effects/Sk1DPathEffect.cpp
@@ -19,6 +19,11 @@
