summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornectar <nectar@FreeBSD.org>2003-08-07 16:42:27 +0000
committernectar <nectar@FreeBSD.org>2003-08-07 16:42:27 +0000
commitdf9de6c5cddb086d8d623c55d1cf800864f9fb29 (patch)
treeb243f33137fa414f8c884b0de9a58ef0bf90260f
parent0e7767264fa208c91b875189149b064c580b630a (diff)
downloadFreeBSD-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.
-rw-r--r--sys/kern/sysv_msg.c5
-rw-r--r--sys/kern/sysv_sem.c5
-rw-r--r--sys/kern/sysv_shm.c5
3 files changed, 9 insertions, 6 deletions
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c
index 51a0c5c..b138d98 100644
--- a/sys/kern/sysv_msg.c
+++ b/sys/kern/sysv_msg.c
@@ -285,7 +285,7 @@ msgsys(td, uap)
struct thread *td;
/* XXX actually varargs. */
struct msgsys_args /* {
- u_int which;
+ int which;
int a2;
int a3;
int a4;
@@ -297,7 +297,8 @@ msgsys(td, uap)
if (!jail_sysvipc_allowed && jailed(td->td_ucred))
return (ENOSYS);
- if (uap->which >= sizeof(msgcalls)/sizeof(msgcalls[0]))
+ if (uap->which < 0 ||
+ uap->which >= sizeof(msgcalls)/sizeof(msgcalls[0]))
return (EINVAL);
error = (*msgcalls[uap->which])(td, &uap->a2);
return (error);
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);
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index a64c7f3..7e9073b 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -784,7 +784,7 @@ shmsys(td, uap)
struct thread *td;
/* XXX actually varargs. */
struct shmsys_args /* {
- u_int which;
+ int which;
int a2;
int a3;
int a4;
@@ -794,7 +794,8 @@ shmsys(td, uap)
if (!jail_sysvipc_allowed && jailed(td->td_ucred))
return (ENOSYS);
- if (uap->which >= sizeof(shmcalls)/sizeof(shmcalls[0]))
+ if (uap->which < 0 ||
+ uap->which >= sizeof(shmcalls)/sizeof(shmcalls[0]))
return (EINVAL);
mtx_lock(&Giant);
error = (*shmcalls[uap->which])(td, &uap->a2);
OpenPOWER on IntegriCloud