Просмотр исходного кода

Prevent infinite loop and subsequent app crash on bad basal rate value (#89)

Joe Moran 4 лет назад
Родитель
Сommit
1cc95a11d6
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      Dependencies/rileylink_ios/OmniKit/Model/BasalDeliveryTable.swift

+ 3 - 0
Dependencies/rileylink_ios/OmniKit/Model/BasalDeliveryTable.swift

@@ -212,6 +212,9 @@ public struct RateEntry {
                 remainingSegments -= 1
             } else {
                 let numSegments = min(maxSegmentsPerEntry, Int(round(remainingPulses / pulsesPerSegment)))
+                if numSegments == 0 {
+                    break // prevent infinite loop and subsequent malloc crash with certain bad rate values
+                }
                 remainingSegments -= numSegments
                 let pulseCount = pulsesPerSegment * Double(numSegments)
                 let entry = RateEntry(totalPulses: pulseCount, delayBetweenPulses: delayBetweenPulses)