check for non-finite values in point3 case

Bug: oss-fuzz:20581
Bug: 1050296
Change-Id: I3059bc95fc9f54d1cb2f228101065b03167762a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270636
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/src/core/SkDraw_vertices.cpp b/src/core/SkDraw_vertices.cpp
index e8461f9..2ca3206 100644
--- a/src/core/SkDraw_vertices.cpp
+++ b/src/core/SkDraw_vertices.cpp
@@ -333,6 +333,10 @@
     if (usePerspective) {
         dev3 = outerAlloc.makeArray<SkPoint3>(vertexCount);
         fMatrix->mapHomogeneousPoints(dev3, vertices, vertexCount);
+        // similar to the bounds check for 2d points (below)
+        if (!SkScalarsAreFinite((const SkScalar*)dev3, vertexCount * 3)) {
+            return;
+        }
     } else {
         devVerts = outerAlloc.makeArray<SkPoint>(vertexCount);
         fMatrix->mapPoints(devVerts, vertices, vertexCount);