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
F152908571: D54765.id170003.diff
Fri, Apr 17, 11:17 PM
Unknown Object (File)
Fri, Apr 17, 3:39 AM
Unknown Object (File)
Thu, Apr 16, 12:25 PM
Unknown Object (File)
Thu, Apr 16, 9:54 AM
Unknown Object (File)
Thu, Apr 16, 3:29 AM
Unknown Object (File)
Thu, Apr 16, 1:20 AM
Unknown Object (File)
Wed, Apr 15, 10:41 PM
Unknown Object (File)
Wed, Apr 15, 9:47 AM
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 Skipped
Unit
No Test Coverage
Build Status
Buildable 69966
Build 66849: 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.