X-Git-Url: http://git.madism.org/?p=~madcoder%2Fpwqr.git;a=blobdiff_plain;f=kernel%2Fpwqr.c;h=7ce0700027f6d3c4a77275feccccd11b6a4924e4;hp=81715965eb01e54968c5af20914eab4dc88e6c7b;hb=4d4f64ffd9acc95b7c4f816a537d2c1dff8df367;hpb=8869335a04728219d22f8f28b1821d91c694dc03 diff --git a/kernel/pwqr.c b/kernel/pwqr.c index 8171596..7ce0700 100644 --- a/kernel/pwqr.c +++ b/kernel/pwqr.c @@ -368,9 +368,15 @@ do_pwqr_wait(struct pwqr_sb *sb, struct pwqr_task *pwqt, preempt_notifier_unregister(&pwqt->notifier); - if (is_wait && copy_from_user(&wait, arg, sizeof(wait))) { - rc = -EFAULT; - goto out; + if (is_wait) { + if (copy_from_user(&wait, arg, sizeof(wait))) { + rc = -EFAULT; + goto out; + } + if (unlikely((long)wait.pwqr_uaddr % sizeof(int) != 0)) { + rc = -EINVAL; + goto out; + } } pwqr_sb_lock_irqsave(sb, flags);