Fixes a segmentation fault caused by a use-after-free condition of
a fusion object.

Fusion calls within fusion_ref_down() shouldn't be deferred as these
could become nested especially when invoked in the context of the event
dispatch loop.

Signed-off-by: Ilyes Gouta <ilyes.go...@gmail.com>
---
 lib/fusion/ref.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/fusion/ref.c b/lib/fusion/ref.c
index 0679e2f..739b23a 100644
--- a/lib/fusion/ref.c
+++ b/lib/fusion/ref.c
@@ -848,7 +848,7 @@ fusion_ref_down (FusionRef *ref, bool global)
                FusionCall *call = ref->single.call;
 
                if (call->handler) {
-                    fusion_call_execute( call, FCEF_NODIRECT | FCEF_ONEWAY, 
ref->single.call_arg, NULL, NULL );
+                    fusion_call_execute( call, FCEF_ONEWAY, 
ref->single.call_arg, NULL, NULL );
 
                     direct_mutex_unlock( &ref->single.lock );
 
-- 
1.8.1.2

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to