-
Notifications
You must be signed in to change notification settings - Fork 517
fix: XDS segmentation faults #1707
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@prateekmedia This PR is also ready, could you take a look? Thanks! |
|
CCExtractor CI platform finished running the test files on linux. Below is a summary of the test results, when compared to test for commit 2260165...:
All tests passing on the master branch were passed completely. NOTE: The following tests have been failing on the master branch as well as the PR:
Congratulations: Merging this PR would fix the following tests:
Check the result page for more info. |
|
CCExtractor CI platform finished running the test files on windows. Below is a summary of the test results, when compared to test for commit 77b93e5...:
All tests passing on the master branch were passed completely. NOTE: The following tests have been failing on the master branch as well as the PR:
Congratulations: Merging this PR would fix the following tests:
Check the result page for more info. |
In raising this pull request, I confirm the following (please check boxes):
My familiarity with the project is as follows (check one):
The regression tests under the XDS category have been failing on Windows due to segmentation faults for a while now. The cause for these errors stem from a small mistake that was made when the CEA-708 decoder functions were ported to Rust.
In specific, here is the offending line:
To contrast, here is the equivalent C section:
window.rowshas the following definition:As we can see, it is an array of pointers where each pointer points to a heap allocated row of
dtvcc_symbols. In rust, this structure is incorrectly assumed to be an array ofdtvcc_symbols. I've fixed this by using pointer arithmetic in rust to do the proper operation:The unit tests which directly utilize this operation were also leaking memory due to this, and thus I've made helper functions to properly handle those as well.