change the nsec argument to timeout_add_nsec from int to uint64_t
authordlg <dlg@openbsd.org>
Mon, 5 Aug 2024 23:51:11 +0000 (23:51 +0000)
committerdlg <dlg@openbsd.org>
Mon, 5 Aug 2024 23:51:11 +0000 (23:51 +0000)
commite72518128f35856ef65c37f06dc8a1330e0c16a7
tree469b09df116823cd8f0f12f29c664d4df8f2e157
parent438cc182970eddd53f94739dbfdb5e080753afd0
change the nsec argument to timeout_add_nsec from int to uint64_t

you can only fit a couple of nanonseconds into an int, which limited
the usefulness of the api. worse, if a large nsec value was passed
in it could be cast to a negative int value which tripped over a
KASSERT at the top of timeout_add that ends up being called. avoid
this footgun by working in the bigger type and doing the same range
checks/fixes for other timeout_add wrappers.

ok claudio@ mvs@
sys/kern/kern_timeout.c
sys/sys/timeout.h