Avoid dividing by zero in SkTwoPointConicalGradient::Create

Bug: oss-fuzz:6146 oss-fuzz:7474
Change-Id: I5f0488f4572140ccb7b9374bc9a66b8ae81dd2d4
Reviewed-on: https://skia-review.googlesource.com/127990
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Yuqian Li <liyuqian@google.com>
diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
index 48877da..d98f4bc 100644
--- a/src/shaders/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
@@ -54,6 +54,9 @@
     Type     gradientType;
 
     if (SkScalarNearlyZero((c0 - c1).length())) {
+        if (SkScalarNearlyZero(SkTMax(r0, r1))) {
+            return nullptr; // Degenerate case; avoid dividing by zero.
+        }
         // Concentric case: we can pretend we're radial (with a tiny twist).
         const SkScalar scale = sk_ieee_float_divide(1, SkTMax(r0, r1));
         gradientMatrix = SkMatrix::MakeTrans(-c1.x(), -c1.y());