Skip to content

Fix strError() to report the requested errno, not the global one#811

Open
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-common-strerror-argument
Open

Fix strError() to report the requested errno, not the global one#811
MarkRose wants to merge 1 commit into
sm0svx:masterfrom
MarkRose:fix-common-strerror-argument

Conversation

@MarkRose

Copy link
Copy Markdown
Contributor
  • strError(int errnum) in src/misc/common.h took an explicit error
    number argument but ignored it, calling strerror_r() with the
    global errno instead. Any caller that saves an errno value (e.g.
    after a failed syscall, once other code may have run and changed
    the global errno) and then calls strError(saved_errno) would get
    the message for whatever errno currently holds, not the one it
    asked about. Fixed by passing errnum through to strerror_r()
    instead of errno.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com


This PR also adds a unit test (StrErrorTest.cpp). It is auto-discovered and executed by the CTest suite proposed in #762 once that is merged; without that suite present the test file is inert and does not affect the build.

- strError(int errnum) in src/misc/common.h took an explicit error
  number argument but ignored it, calling strerror_r() with the
  global errno instead. Any caller that saves an errno value (e.g.
  after a failed syscall, once other code may have run and changed
  the global errno) and then calls strError(saved_errno) would get
  the message for whatever errno currently holds, not the one it
  asked about. Fixed by passing errnum through to strerror_r()
  instead of errno.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@MarkRose MarkRose closed this Jul 12, 2026
@MarkRose MarkRose reopened this Jul 12, 2026
@MarkRose MarkRose closed this Jul 12, 2026
@MarkRose MarkRose reopened this Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant