Bug 1351553 - fix divide-by-zero. draft
authorJW Wang <jwwang@mozilla.com>
Wed, 29 Mar 2017 16:15:13 +0800
changeset 552966 8fb489d7c73d74b3673eea09145c2e3c3476be03
parent 552827 8d504462c497bbb487a2237dcb73877796100197
child 621966 0fe272f9344364b08074896833341f07cc019539
push id51528
push userjwwang@mozilla.com
push dateWed, 29 Mar 2017 10:17:12 +0000
bugs1351553
milestone55.0a1
Bug 1351553 - fix divide-by-zero. MozReview-Commit-ID: BZVCVOOLx1L
dom/media/MediaDecoder.cpp
--- a/dom/media/MediaDecoder.cpp
+++ b/dom/media/MediaDecoder.cpp
@@ -1031,17 +1031,18 @@ MediaDecoder::GetStatistics()
 
 void
 MediaDecoder::ComputePlaybackRate()
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(mResource);
 
   int64_t length = mResource->GetLength();
-  if (!IsNaN(mDuration) && !mozilla::IsInfinite<double>(mDuration)
+  if (mozilla::IsFinite<double>(mDuration)
+      && mDuration > 0
       && length >= 0) {
     mPlaybackRateReliable = true;
     mPlaybackBytesPerSecond = length / mDuration;
     return;
   }
 
   bool reliable = false;
   mPlaybackBytesPerSecond = mPlaybackStatistics->GetRateAtLastStop(&reliable);