[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