浏览代码

linux-pipewire: Ensure number of dmabufs is zero initialized

We use a size_t that can be 64bit while EGL uses 32bit for the
underlying value. Writes from our graphics function can leave high bits
uninitialized and cause iteration of the format list to overlfow.

fixes #9844

(cherry picked from commit ea1d022c208ddd6b081fc4925c18cadd117d3d10)
Kurt Kartaltepe 1 年之前
父节点
当前提交
e687f89bb0
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      plugins/linux-pipewire/pipewire.c

+ 1 - 1
plugins/linux-pipewire/pipewire.c

@@ -522,7 +522,7 @@ static void init_format_info_sync(obs_pipewire_stream *obs_pw_stream)
 
 
 	enum gs_dmabuf_flags dmabuf_flags;
 	enum gs_dmabuf_flags dmabuf_flags;
 	uint32_t *drm_formats = NULL;
 	uint32_t *drm_formats = NULL;
-	size_t n_drm_formats;
+	size_t n_drm_formats = 0;
 
 
 	bool capabilities_queried = gs_query_dmabuf_capabilities(
 	bool capabilities_queried = gs_query_dmabuf_capabilities(
 		&dmabuf_flags, &drm_formats, &n_drm_formats);
 		&dmabuf_flags, &drm_formats, &n_drm_formats);