< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] DUM: Usage of potentially unsafe handles in async *Command() actions


I've noticed the potential for that same issues before.  I think you are on the right track here.  It would be great if you could contribute the changes back.  : )

Thanks,
Scott

On Mon, Jan 21, 2013 at 9:58 AM, Francis Joanis <francis.joanis@xxxxxxxxx> wrote:

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

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel