diff options
author | nectar <nectar@FreeBSD.org> | 2003-08-07 16:42:27 +0000 |
---|---|---|
committer | nectar <nectar@FreeBSD.org> | 2003-08-07 16:42:27 +0000 |
commit | df9de6c5cddb086d8d623c55d1cf800864f9fb29 (patch) | |
tree | b243f33137fa414f8c884b0de9a58ef0bf90260f /sys/kern/sysv_sem.c | |
parent | 0e7767264fa208c91b875189149b064c580b630a (diff) | |
download | FreeBSD-src-df9de6c5cddb086d8d623c55d1cf800864f9fb29.zip FreeBSD-src-df9de6c5cddb086d8d623c55d1cf800864f9fb29.tar.gz |
Update some argument-documenting comments to match reality.
Add an explicit range check to those same arguments to reduce risk of
cardiac arrest in future code readers.
Diffstat (limited to 'sys/kern/sysv_sem.c')
-rw-r--r-- | sys/kern/sysv_sem.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c index 58e502d..6ffe9c2 100644 --- a/sys/kern/sysv_sem.c +++ b/sys/kern/sysv_sem.c @@ -275,7 +275,7 @@ semsys(td, uap) struct thread *td; /* XXX actually varargs. */ struct semsys_args /* { - u_int which; + int which; int a2; int a3; int a4; @@ -286,7 +286,8 @@ semsys(td, uap) if (!jail_sysvipc_allowed && jailed(td->td_ucred)) return (ENOSYS); - if (uap->which >= sizeof(semcalls)/sizeof(semcalls[0])) + if (uap->which < 0 || + uap->which >= sizeof(semcalls)/sizeof(semcalls[0])) return (EINVAL); error = (*semcalls[uap->which])(td, &uap->a2); return (error); |