[vlc-devel] [vlc-commits] src: fix crash in getaddrinfo due to bugs in the OSX runtime
Rémi Denis-Courmont
remi at remlab.net
Thu Jul 4 19:56:34 CEST 2013
Le jeudi 4 juillet 2013 20:41:52, Felix Paul Kühne a écrit :
> Hello,
>
> On 04.07.2013, at 19:33, "Rémi Denis-Courmont" <remi at remlab.net> wrote:
> > If VLC passes "0", then VLC is doing just the right thing.
>
> Absolutely. The bug and the cause of the crash isn't in VLC, but in
> Darwin's libSystem, which doesn't behave correctly.
>
> Kind of proof of this thesis is that the same crash end-point is reached
> from VLC's RTSP, UDP and RealRTSP modules.
>
> Thus, this patch tried to prevent crashes caused by the Darwin runtime in
> versions 11 and 12 (aka OS X 10.7, 10.8, iOS 5).
>
> A typical crash logs looks like this (sorry, I don't have a fully
> symbolicated variant handy):
>
> 0 libsystem_info.dylib 0x00007fff914dfd9e mdns_addrinfo
> 299 1 libsystem_info.dylib 0x00007fff914e0ae2
> search_addrinfo 152 2 libsystem_info.dylib
> 0x00007fff914caf6d si_addrinfo 1641 3 libsystem_info.dylib
> 0x00007fff914ca85c getaddrinfo 171 4 libvlccore.5.dylib
> 0x000000010007735c vlc_getaddrinfo 316 5 libvlccore.5.dylib
> 0x0000000100077ed3 net_Connect 419 6
> libaccess_realrtsp_plugin.dylib 0x00000001005086e7 RtspConnect 39 7
> libaccess_realrtsp_plugin.dylib 0x000000010050958c rtsp_connect 540
> 8 libaccess_realrtsp_plugin.dylib 0x0000000100508229 Open 329 9
> libvlccore.5.dylib 0x0000000100081bbe vlc_module_load
> 1310 10 libvlccore.5.dylib 0x00000001000450a8 access_New
> 376 11 libvlccore.5.dylib 0x00000001000593f1
> InputSourceInit 1089 12 libvlccore.5.dylib
> 0x0000000100056431 Init 1265 13 libvlccore.5.dylib
> 0x0000000100058866 Run 22 14 libsystem_c.dylib
> 0x00007fff923fd7a2 _pthread_start 327 15 libsystem_c.dylib
> 0x00007fff923ea1e1 thread_start 13
It does not make sense to connect to TCP port zero in the first place. This
looks like a bug in the realrtsp plugin. Leave the network stack out of this.
This is software *engineering*, not palliative care. In software engineering,
you fix the problems rather than avoid the symptoms.
--
Rémi Denis-Courmont
http://www.remlab.net/
More information about the vlc-devel
mailing list