Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tracer: fix possible double free during dialog tracing
The initial transaction info free algorithm was to release the memory when there is no other tracing instance running. However, when engaging dialog tracing, a single dialog tracing instance is created, without a transaction one. But, when the BYE is received, it is traced using the transaction tracing, without an instance. Thus, the free function is called twice, once for dialog and once for transaction: * first call will find the dialog instance and release it, and release the info (since there are no remaining instances) * the second call, for the transaction instances releases would basically access invalid memory, which could lead to either double free, or even memory corruptions (in case fragment would had been repurposed) Credits for Vlad Paiu for troubleshooting, brainstorming and providing useful logs Fixes #2869
- Loading branch information