Page MenuHomeFreeBSD

sleep: fix SIGINFO output and modernize interval parsing
Needs ReviewPublic

Authored by nvsrahul_hotmail.com on Jan 18 2026, 12:47 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, May 27, 2:33 AM
Unknown Object (File)
Mon, May 25, 3:58 AM
Unknown Object (File)
Fri, May 22, 8:52 AM
Unknown Object (File)
Tue, May 19, 7:50 AM
Unknown Object (File)
Tue, May 19, 5:53 AM
Unknown Object (File)
Tue, May 19, 2:35 AM
Unknown Object (File)
Mon, May 18, 2:37 PM
Unknown Object (File)
Mon, May 18, 2:37 PM
Subscribers

Details

Reviewers
imp
Summary

Replace sscanf-based interval parsing with strtod(3) to match
documented behavior and improve error handling. Fix SIGINFO
handling to print remaining sleep time to stdout as specified
by sleep(1).

Signed-off-by: NVSRahul <nvsrahul@hotmail.com>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 69967
Build 66850: arc lint + arc unit

Event Timeline

  • sleep: fix SIGINFO output and modernize interval parsing

Updating D54765: sleep: fix SIGINFO output and modernize interval parsing

Updating D54765: sleep: fix SIGINFO output and modernize interval parsing

Updating D54765: sleep: fix SIGINFO output and modernize interval parsing

Updating D54765: sleep: fix SIGINFO output and modernize interval parsing

Updating D54765: sleep: fix SIGINFO output and modernize interval parsing

Updated D54765: sleep: fix SIGINFO output and modernize interval parsing

bin/sleep/sleep.c
92

So if endptr[0] was NUL, what guarantees endptr[1] is also NUL.

Updated D54765: sleep: fix SIGINFO output and modernize interval parsing

Good catch, thanks.
When *endptr == '\0', accessing endptr[1] is invalid.
I’ve updated the logic to only check endptr[1] when a unit
character is present, avoiding a read past the string terminator.