Conversation
* fix: prevent EDS read hang on max sub index * test: isolate EDS hang regression checks * build: include EDS probe host in solution --------- Co-authored-by: Dietmar <2646931+dborgards@users.noreply.github.com>
## [1.8.1-beta.1](v1.8.0...v1.8.1-beta.1) (2026-03-09) ### 🐛 Bug Fixes * prevent EDS read hang on max sub index ([#199](#199)) ([8ba4082](8ba4082))
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Contributor
There was a problem hiding this comment.
Pull request overview
Promotes the current develop state to main for release, including the fix for an EDS parsing hang when SubNumber is 0xFF and accompanying regression coverage via an external probe.
Changes:
- Fix sub-object parsing loop in
CanOpenReaderBase.ParseSubObjectsto avoidbytewraparound when the max sub-index is0xFF. - Add an integration “probe” console host plus a test runner to validate sync/async reads complete within a timeout and include sub-index
0x00and0xFF. - Add a
max_subnumber.edsfixture and wire up the new test host project into the test project/solution.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/EdsDcfNet.Tests/Integration/EdsReadProbeRunner.cs | New helper to execute the probe process with a timeout and parse its output. |
| tests/EdsDcfNet.Tests/Integration/CanOpenFileTests.cs | Adds sync regression test for SubNumber=0xFF hang + highest sub-object parsing. |
| tests/EdsDcfNet.Tests/Integration/CanOpenFileAsyncTests.cs | Adds async regression test for SubNumber=0xFF hang + highest sub-object parsing. |
| tests/EdsDcfNet.Tests/Fixtures/max_subnumber.eds | New fixture exercising max sub-index (0xFF) behavior. |
| tests/EdsDcfNet.Tests/EdsDcfNet.Tests.csproj | Builds the probe host as part of the test build (non-referenced output). |
| tests/EdsDcfNet.TestHost/Program.cs | New console probe that reads an EDS and prints key/value output for assertions. |
| tests/EdsDcfNet.TestHost/EdsDcfNet.TestHost.csproj | New net10.0 test host project referencing the library. |
| src/EdsDcfNet/Parsers/CanOpenReaderBase.cs | Core parsing fix: use int loop counter and cast only at lookup/storage. |
| src/EdsDcfNet/EdsDcfNet.csproj | Version updated as part of release flow. |
| EdsDcfNet.sln | Adds the new EdsDcfNet.TestHost project to the solution. |
| CHANGELOG.md | Includes the prerelease entry corresponding to the fix. |
You can also share your feedback on Copilot code review. Take the survey.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Promotion
Promotes the current
developstate tomainto trigger the stable release pipeline.Included scope
Pre-merge checks
developPost-merge
Note
Low Risk
Small, targeted parsing fix plus tests; low behavioral risk beyond correcting the
SubNumber=0xFFedge case.Overview
Fixes an infinite-loop/hang when parsing EDS objects with a maximum sub-index of
0xFFby switching theParseSubObjectsloop counter frombytetointand casting only when indexing/reading sub-objects.Adds an integration fixture (
max_subnumber.eds) and a newEdsDcfNet.TestHostconsole probe invoked from tests with a timeout to ensure both sync and asyncReadEds*paths don’t hang and correctly parse sub-objects0x00and0xFF. Also bumps package version to1.8.1-beta.1and updatesCHANGELOG.mdfor the release note.Written by Cursor Bugbot for commit 4b0428f. This will update automatically on new commits. Configure here.