[reSIProcate] DUM: Usage of potentially unsafe handles in async *Command() actions
Francis Joanis
francis.joanis at gmail.com
Mon Jan 21 08:58:57 CST 2013
Hi guys,
One of my colleague encountered a crash within DUM where:
- InviteSession::acceptCommand() was called to perform an async accept() on
a session
- A BYE came in very shortly after and destroyed the same session prior to
the execution of the DumCommand
Once the stack got to process the enqueued command it got an exception
because the InviteSessionHandle that was cached in the command object was
now invalid.
A fix would be to ensure that we call handle.isValid() within each
command's executeCommand() method (like AppDialogSet::endCommand()). If the
handle is invalid, we would then do nothing.
This is somewhat widespread (not limited to InviteSession) so I am
wondering if I might be missing something obvious. If no one objects I'll
start working on a patch.
Cheers,
Francis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20130121/fd5b3bb7/attachment.htm>
More information about the resiprocate-devel
mailing list