Bugzilla – Bug 2776
MacLow::StartTransmission ends up in segmentation fault
Last modified: 2017-08-23 16:48:52 UTC
Created attachment 2905 [details] proposed mac_low_fix. Hello, I have discovered and fixed a nasty bug. It came up in changeset 12571. When MacLow::StartTransmission is called, first m_currentDca = dca; assignment is done and then CancelAllEvents (); is called. However, if there is any active timer exists, CancelAllEvents() empties the member m_currentDca inside. Since the assignment of dca is done before CancelAllEvents(), new dca is also emptied and whenever MacLow() calls its member m_currentDca, segmentation fault is thrown. Bug can be fixed by moving the assignment after the CancelAllEvents() function call. I am not sure about the frequency of this bug but its severity is high and I have encountered it when I have applied our new fading channel. After this fix, our curves seemed a lot smoother, it is also possible that it does not cause segmentation fault but also other problems, so I think this should be fixed ASAP! Bugfix is in the attachment. Regards, Akın
Thanks Akin for the fix. Pushed in changeset 13050:969140f099bb.