소스 검색

UI: Fix crash radio list without items

Check items count before accessing first item,
or it will crash due to out-of-bound access.
Yoshimasa Niwa 2 년 전
부모
커밋
9ab5271d69
1개의 변경된 파일9개의 추가작업 그리고 6개의 파일을 삭제
  1. 9 6
      UI/properties-view.cpp

+ 9 - 6
UI/properties-view.cpp

@@ -631,12 +631,15 @@ QWidget *OBSPropertiesView::AddList(obs_property_t *prop, bool &warning)
 		for (size_t idx = 0; idx < count; idx++)
 			AddRadioItem(buttonGroup, subLayout, prop, value, idx);
 
-		buttonGroup->setExclusive(true);
-		WidgetInfo *info =
-			new WidgetInfo(this, prop, buttonGroup->buttons()[0]);
-		children.emplace_back(info);
-		connect(buttonGroup, SIGNAL(buttonClicked(QAbstractButton *)),
-			info, SLOT(ControlChanged()));
+		if (count > 0) {
+			buttonGroup->setExclusive(true);
+			WidgetInfo *info = new WidgetInfo(
+				this, prop, buttonGroup->buttons()[0]);
+			children.emplace_back(info);
+			connect(buttonGroup,
+				SIGNAL(buttonClicked(QAbstractButton *)), info,
+				SLOT(ControlChanged()));
+		}
 
 		QWidget *widget = new QWidget();
 		widget->setLayout(subLayout);