Hi,

I encounter segfaults in LIVE555 Streaming Media on stream start after building 
with Debian's gcc 6.3.0-18.

The issue occurs in RTSPCommon.cpp: parseRangeParam(...):
  delete[] absStartTime; delete[] absEndTime;

Trouble is that both to-be-deleted variables are invalid. When tracing back, I 
see RTSPClient.cpp: handlePLAYResponse(...) being called with an argument
  MediaSession& session
pointing to Null. This is expected to be caught in the following line
  if (&session != NULL) {
but GDB shows the program skipping into the true-branch right after this check.

The reason for this behavior is that in C++ a reference is expected to be 
initialized on a valid object only. So gcc's optimizer removes the always-true 
conditional leading to the mentioned segfault.

I found the following patch by Hugo Beauzée-Luyssen in the videolan repo that 
fixes this bug for me. It applies to the most recent source code packet 
"live.2017.10.28.tar.gz".
http://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;a=blob_plain;f=contrib/src/live555/no-null-reference.patch;h=a1dea30fbc5e7b13e3616c190f9b626e97d2e156;hb=HEAD
Source is here.
http://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;a=tree;f=contrib/src/live555

Best Regards,
--Marco Porsch


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to