浏览代码

UI: Avoid division by zero when calculating slider position

Detected by UBSan.
Richard Stanway 2 年之前
父节点
当前提交
bff7928b50
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      UI/media-controls.cpp

+ 7 - 1
UI/media-controls.cpp

@@ -338,7 +338,13 @@ void MediaControls::SetSliderPosition()
 	float time = (float)obs_source_media_get_time(source);
 	float duration = (float)obs_source_media_get_duration(source);
 
-	float sliderPosition = (time / duration) * (float)ui->slider->maximum();
+	float sliderPosition;
+
+	if (duration)
+		sliderPosition =
+			(time / duration) * (float)ui->slider->maximum();
+	else
+		sliderPosition = 0.0f;
 
 	ui->slider->setValue((int)sliderPosition);