Fix UBSAN report in SkM44::Perspective.

Passing in a zero angle is meaningless in this case, just as much as
near == far, so handle it in the same way.

Bug: oss-fuzz:26951
Change-Id: I4f5e3227f78dfe5a98222138fc3f8096fd1bb789
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/635499
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
diff --git a/src/core/SkM44.cpp b/src/core/SkM44.cpp
index 9c70aa4..d4e894b 100644
--- a/src/core/SkM44.cpp
+++ b/src/core/SkM44.cpp
@@ -343,7 +343,8 @@
 
     float denomInv = sk_ieee_float_divide(1, far - near);
     float halfAngle = angle * 0.5f;
-    float cot = sk_float_cos(halfAngle) / sk_float_sin(halfAngle);
+    SkASSERT(halfAngle != 0);
+    float cot = sk_ieee_float_divide(1, sk_float_tan(halfAngle));
 
     SkM44 m;
     m.setRC(0, 0, cot);