On Mon, Sep 12, 2016 at 02:02:33PM +0200, Ross Finlayson wrote:
> Rather than making an obscure reference to a 6-year-old message (that was 
> likely in response to something completely different to what you’re concerned 
> about), why don’t you just ask the question you really want to ask?  That 
> way, we’ll all know what your question really is...

To be honest, I was debugging code that uses exactly that advise from
that 6-year-old message to limit the number of active sessions (but I
only discovered that message way later in my debugging). It took me a
while figuring out that returning NULL from createNewClientSession
causes createNewClientSessionWithId to insert a NULL session into the
HashTable fClientSessions. This wouldn't be too bad, but when you
destruct a GenericMediaServer, it turns out that fClientSessions is only
deleted until finding the first NULL pointer. Thus actual ClientSessions
can be leaked. While that also looks like a simple resource leak,
ClientSessions have a fLivenessCheckTask that eventually fires.  When it
does, a use-after-free (on the now deleted GenericMediaServer) can cause
very weired behaviour.

That is what lead me to the initial question: Is it actually ok for
createNewClientSession and others to return NULL? If it is, then you
have a bug. If it isn't, I have a bug (and that 2009 message is no
longer accurate). So whose bug is this?

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

Reply via email to