|
Bugzilla – Full Text Bug Listing |
| Summary: | MacLow::StartTransmission ends up in segmentation fault | ||
|---|---|---|---|
| Product: | ns-3 | Reporter: | Akin Soysal <akinsoysal> |
| Component: | wifi | Assignee: | sebastien.deronne |
| Status: | RESOLVED FIXED | ||
| Severity: | major | CC: | ns-bugs |
| Priority: | P2 | ||
| Version: | ns-3-dev | ||
| Hardware: | All | ||
| OS: | All | ||
| Attachments: | proposed mac_low_fix. | ||
Thanks Akin for the fix. Pushed in changeset 13050:969140f099bb. |
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