fix: error due to out-of-range process exit code #339
Merged
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.
Fixes: #338
What was the problem/requirement? (What/Why)
On Win32 systems we may receive process exit codes that are outside of the range of a 32-bit signed integer (as expected by UpdateWorkerAgent API), but in range of a 32-bit unsigned integer. This causes a validation error to be raised which the agent treats as an unrecoverable error and exits.
What was the solution? (How)
Convert all process exit codes to be in range of a 32-bit signed integer by casting the bits to the type.
What is the impact of this change?
The agent should no longer exit on Windows when it gets a process exit code that was not accounted for.
How was this change tested?
Unit tests have been added to ensure that the conversion is as expected.
Was this change documented?
N/A
Is this a breaking change?
No
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.