[vlc-devel] [PATCH] lib: assert instead of abort

Romain Vimont rom1v at videolabs.io
Fri Sep 20 14:49:50 CEST 2019


On Fri, Sep 20, 2019 at 03:13:08PM +0300, Rémi Denis-Courmont wrote:
> I completely disagree. When event registration/deregistration fails, you're almost guaranteed a deadlock or some use after free. Much better to abort asap.

If an assertion fails, then the program has (probably) undefined
behavior.

But why using assert() everywhere but abort() here? There are a lot of
places where a failing assert() would almost guarantee a deadlock or
some use after free.

> Le 20 septembre 2019 12:21:37 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
> >Because you should not abort in production. Developers will still be
> >notified
> >that they are miss-using the API with the assert.
> >
> >PS: this abort was happening on iOS via VLCKit, the API miss-use had
> >been fixed
> >here: https://code.videolan.org/videolan/VLCKit/merge_requests/19
> >---
> > lib/event.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >diff --git a/lib/event.c b/lib/event.c
> >index 28d3d0c232..4a57029b89 100644
> >--- a/lib/event.c
> >+++ b/lib/event.c
> >@@ -179,5 +179,5 @@ void libvlc_event_detach(libvlc_event_manager_t
> >*em, libvlc_event_type_t type,
> >              return;
> >          }
> >     }
> >-    abort();
> >+    assert(!"event not found or already detached");
> > }
> >-- 
> >2.20.1
> >
> >_______________________________________________
> >vlc-devel mailing list
> >To unsubscribe or modify your subscription options:
> >https://mailman.videolan.org/listinfo/vlc-devel
> 
> -- 
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.

> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list