瀏覽代碼

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);