diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2008-10-13 21:04:52 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2008-10-13 21:04:52 +0000 |
commit | ead773b051a53f42e87af702e86dcd261d2821f7 (patch) | |
tree | 8d07078a1a027ce3e9d31d40d08b1332d9176b48 /sys/kern/kern_thr.c | |
parent | aab9e7a8a61c62cd7b1dccb109f5a637f7627f80 (diff) | |
download | FreeBSD-src-ead773b051a53f42e87af702e86dcd261d2821f7.zip FreeBSD-src-ead773b051a53f42e87af702e86dcd261d2821f7.tar.gz |
Check the result of copyin and in a case of error
return one. This prevents setting wrong priority
or (more likely) returning EINVAL.
Approved by: kib (mentor)
Diffstat (limited to 'sys/kern/kern_thr.c')
-rw-r--r-- | sys/kern/kern_thr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index dc9953b..b460bd3 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -126,6 +126,8 @@ kern_thr_new(struct thread *td, struct thr_param *param) rtpp = NULL; if (param->rtp != 0) { error = copyin(param->rtp, &rtp, sizeof(struct rtprio)); + if (error) + return (error); rtpp = &rtp; } error = create_thread(td, NULL, param->start_func, param->arg, |