[Live-devel] problem processing RTSP TEARDOWN

PROMONET Michel michel.promonet at thalesgroup.com
Fri Jan 17 07:48:46 PST 2014


            Hi Ross,

I did not say RTSPClientSession will deleted twice, I just report an access to an object after its deletion.

The problem report by valgrind occurs processing TEARDOWN because :

-       RTSPServer:1016   clientSession->handleCmd_withinSession(this, cmdName, urlPreSuffix, urlSuffix, (char const*)fRequestBuffer);
=> delete the RTSPClientSession the is pointed by clientSession.

-       RTSPServer:1098    if (clientSession != NULL && clientSession->fStreamAfterSETUP && strcmp(cmdName, "SETUP") == 0) {

ð  The deleted clientSession is not NULL, point on a unallocated memory and clientSession->fStreamAfterSETUP is evaluated.

Running under debugger show that clientSession is no more allocated when clientSession->fStreamAfterSETUP is evaluated.

I guess that till the memory is mapped on something, it will work.
But I am not sure that in certain situation the memory could become no more valid and perhaps raise a segment violation .

Are you sure that accessing to an memory that was freed could not raise any problem ?

Best Regards,

            Michel.

[@@ THALES GROUP INTERNAL @@]

De : live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] De la part de Ross Finlayson
Envoyé : vendredi 17 janvier 2014 15:51
À : LIVE555 Streaming Media - development & use
Objet : Re: [Live-devel] problem processing RTSP TEARDOWN

"valgrind" frequently reports 'false positives' - i.e., 'errors' that aren't really errors.  Therefore, I don't pay attention to "valgrind" reports, unless they're accompanied by a report of a real problem (such as a crash), or an identification of a specific bug in the code.  In other words, a "valgrind" report, is not, per se, a "problem".

In this case, I don't see any problem in the code.  The "RTSPClientSession" object is looked up - for each request - by looking up the 'session id string' in a hash table.  The "RTSPClientSession" destructor (which is called when handling a "TEARDOWN") also removes the object from the hash table.  So I don't see any way that a "RTSPClientSession" object can get deleted twice.

So, right now I don't see this "valgrind" report as indicating a real problem.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20140117/1b9b76ad/attachment-0001.html>


More information about the live-devel mailing list