aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2001-06-28 22:53:42 +0000
committerRobert Watson <rwatson@FreeBSD.org>2001-06-28 22:53:42 +0000
commite8f7a95298fc2309fa48391c83795adefa3903dd (patch)
treec3b855e993d3b9dd29a9ca21ea31c76166574c04
parent0b597242ad78c1f06ead959fd2d3892f1de7e0b1 (diff)
downloadsrc-e8f7a95298fc2309fa48391c83795adefa3903dd.tar.gz
src-e8f7a95298fc2309fa48391c83795adefa3903dd.zip
Add error checking for copyin() operations in posix4 scheduling code.
Notes
Notes: svn path=/head/; revision=78943
-rw-r--r--sys/kern/p1003_1b.c8
-rw-r--r--sys/posix4/p1003_1b.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/sys/kern/p1003_1b.c b/sys/kern/p1003_1b.c
index cf2c7da20d10..7ae378daa95c 100644
--- a/sys/kern/p1003_1b.c
+++ b/sys/kern/p1003_1b.c
@@ -169,7 +169,9 @@ int sched_setparam(struct proc *p,
int e;
struct sched_param sched_param;
- copyin(uap->param, &sched_param, sizeof(sched_param));
+ e = copyin(uap->param, &sched_param, sizeof(sched_param));
+ if (e)
+ return (e);
(void) (0
|| (e = p31b_proc(p, uap->pid, &p))
@@ -202,7 +204,9 @@ int sched_setscheduler(struct proc *p,
int e;
struct sched_param sched_param;
- copyin(uap->param, &sched_param, sizeof(sched_param));
+ e = copyin(uap->param, &sched_param, sizeof(sched_param));
+ if (e)
+ return (e);
(void) (0
|| (e = p31b_proc(p, uap->pid, &p))
diff --git a/sys/posix4/p1003_1b.c b/sys/posix4/p1003_1b.c
index cf2c7da20d10..7ae378daa95c 100644
--- a/sys/posix4/p1003_1b.c
+++ b/sys/posix4/p1003_1b.c
@@ -169,7 +169,9 @@ int sched_setparam(struct proc *p,
int e;
struct sched_param sched_param;
- copyin(uap->param, &sched_param, sizeof(sched_param));
+ e = copyin(uap->param, &sched_param, sizeof(sched_param));
+ if (e)
+ return (e);
(void) (0
|| (e = p31b_proc(p, uap->pid, &p))
@@ -202,7 +204,9 @@ int sched_setscheduler(struct proc *p,
int e;
struct sched_param sched_param;
- copyin(uap->param, &sched_param, sizeof(sched_param));
+ e = copyin(uap->param, &sched_param, sizeof(sched_param));
+ if (e)
+ return (e);
(void) (0
|| (e = p31b_proc(p, uap->pid, &p))