Bläddra i källkod

libobs: Fix stack buffer overflow in build_current_order_info

liu.haibin 4 år sedan
förälder
incheckning
d6c77964c0
1 ändrade filer med 6 tillägg och 2 borttagningar
  1. 6 2
      libobs/obs-scene.c

+ 6 - 2
libobs/obs-scene.c

@@ -3211,7 +3211,9 @@ build_current_order_info(obs_scene_t *scene,
 
 	obs_sceneitem_t *item = scene->first_item;
 	while (item) {
-		da_push_back(items, &item);
+		struct obs_sceneitem_order_info info = {0};
+		info.item = item;
+		da_push_back(items, &info);
 
 		if (item->is_group) {
 			obs_scene_t *sub_scene = item->source->context.data;
@@ -3221,7 +3223,9 @@ build_current_order_info(obs_scene_t *scene,
 			obs_sceneitem_t *sub_item = sub_scene->first_item;
 
 			while (sub_item) {
-				da_push_back(items, &item);
+				info.group = item;
+				info.item = sub_item;
+				da_push_back(items, &info);
 
 				sub_item = sub_item->next;
 			}