check for non-finite values that can make us overshoot



git-svn-id: http://skia.googlecode.com/svn/trunk@1870 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
index b1f58e6..f593b57 100644
--- a/src/effects/SkDashPathEffect.cpp
+++ b/src/effects/SkDashPathEffect.cpp
@@ -62,12 +62,18 @@
             phase = SkScalarMod(phase, len);
         }
 
+        // got to watch out for values that might make us go out of bounds
+        if (!SkScalarIsFinite(phase) || !SkScalarIsFinite(len)) {
+            goto BAD_DASH;
+        }
+
         SkASSERT(phase >= 0 && phase < len);
         fInitialDashLength = FindFirstInterval(intervals, phase, &fInitialDashIndex);
 
         SkASSERT(fInitialDashLength >= 0);
         SkASSERT(fInitialDashIndex >= 0 && fInitialDashIndex < fCount);
     } else {
+        BAD_DASH:
         fInitialDashLength = -1;    // signal bad dash intervals
     }
 }