vlc | branch: master | Romain Vimont <[email protected]> | Mon Feb 17 17:53:10 
2020 +0100| [7e45ce925b8c74958656546e5d1395b2e48f85ee] | committer: Rémi 
Denis-Courmont

opengl: fix destruction order

The close() callback must be called before module_unneed(), otherwise,
objects allocated by vlc_obj_malloc() will be used-after-free.

Fixes #24234

Signed-off-by: Rémi Denis-Courmont <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7e45ce925b8c74958656546e5d1395b2e48f85ee
---

 modules/video_output/opengl/interop.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/video_output/opengl/interop.c 
b/modules/video_output/opengl/interop.c
index 9f39681a60..74b961418f 100644
--- a/modules/video_output/opengl/interop.c
+++ b/modules/video_output/opengl/interop.c
@@ -114,10 +114,10 @@ vlc_gl_interop_New(struct vlc_gl_t *gl, const 
opengl_vtable_t *vt,
 void
 vlc_gl_interop_Delete(struct vlc_gl_interop *interop)
 {
-    if (interop->module)
-        module_unneed(interop, interop->module);
     if (interop->ops && interop->ops->close)
         interop->ops->close(interop);
+    if (interop->module)
+        module_unneed(interop, interop->module);
     vlc_object_delete(interop);
 }
 

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to