Repository navigation
fix(c/driver_manager): handle long filenames instead of throwing - #4995
Merged
Merged
Conversation
Member
Author
|
I've pushed up just some tests that should exercise the edge case in 74fcf3d. I'll post the CI failures here once those run. I expect to see unhandled throws. |
Member
Author
|
C/C++ (Conda/ubuntu-latest) failed with: |
Member
Author
|
C/C++ (Conda/windows-latest) failed with: and |
Member
Author
|
This didn't fail on Windows, So I think std::filesystem on MSVC doesn't treat an overly long filename as an error, it just treats it as !exists. |
Member
|
Thanks, I had forgotten about this |
amoeba
commented
Nov 5, 2026
amoeba
marked this pull request as ready for review
November 5, 2026 01:07
lidavidm
approved these changes
Nov 5, 2026
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.
Copilot review on #4939 (comment) found an edge case in the C++ driver manager when strings that are too long to be valid operating-system-specific file paths are used. The current implementation uses the variant of
std::filesystem::existsthat throws and we weren't catching those.This PR converts those uses to
bool exists( const std::filesystem::path& p, std::error_code& ec ) noexcept;and either ignores the error or handles it an enhances the driver manager error.This PR was detected with Copilot and I drove Opus 5.5 around. The changes were tested in CI, see comments in the PR thread.