Repository navigation
fix(libc): keep EINVAL from strerror_r for an unknown error with a short buffer - #3130
Merged
Merged
Conversation
|
Thank you for your interest in the project! We are sorry, but we cannot accept more PRs while we work through the existing backlog. This PR has been automatically closed and labeled "intake paused". This is not a judgment of the quality of your changes. |
Collaborator
|
Checked against FreeBSD releng/11.4 |
10 tasks done
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.
What
strerror_rwith an unknown error number and a buffer too small for the "Unknown error: N" text returned ERANGE (34). FreeBSD 11 returns EINVAL (22) for an unknown number whatever the buffer size: inlib/libc/string/strerror.c(releng/11.4) theerrnum < 0 || errnum >= sys_nerrbranch setsretval = EINVALand only the known-number branch can set ERANGE. The text is still written truncated, as before.One line in
Errors.cpp, two assertions inguest_errors. #2057 made the same change and was closed by its author before review; this is a fresh patch on currentmain.Tested
Arch Linux, GCC 16.2.1, Release,
maind2f43cb.guest_errorswith only the new assertions aborts; with the fix it passes 5 of 5. No GPU involved.python3 tools/check_conventions.py --base origin/mainpasses. Not tested on Windows.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)