sdl2_gl_release_dmabuf() releases the texture but leaves the
guest_fb.dmabuf pointer dangling. Clear it to prevent stale
references after the dmabuf is freed.
Fixes: 52053b7e0a0e ("ui/sdl2: Implement dpy dmabuf functions")
Signed-off-by: Marc-André Lureau <[email protected]>
---
ui/sdl2-gl.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c
index 1547ad2f6f80..46eff768c968 100644
--- a/ui/sdl2-gl.c
+++ b/ui/sdl2-gl.c
@@ -286,7 +286,12 @@ void sdl2_gl_scanout_dmabuf(DisplayChangeListener *dcl,
void sdl2_gl_release_dmabuf(DisplayChangeListener *dcl,
QemuDmaBuf *dmabuf)
{
+ struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
+
egl_dmabuf_release_texture(dmabuf);
+ if (scon->guest_fb.dmabuf == dmabuf) {
+ scon->guest_fb.dmabuf = NULL;
+ }
}
bool sdl2_gl_has_dmabuf(DisplayChangeListener *dcl)
--
2.55.0.543.g5ebe2ebe4ea8