Details
Description
The network_interface_tl binds its command states into async lambdas for connection establishment, timeout, and command response resolution. However, the timer lambda here can cause a leak if the command state is canceled. Since the timer is a member of the command state itself, we need to cancel the timer to break the lifetime dependency cycle. We do it here, too late in program flow to observe cancelation. We should cancel the timer earlier in the command response resolution. This issue exists for v4.0 and v4.2. It is fixed for v4.4 by a reorganization (see here).