diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2014-05-03 16:18:11 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2014-05-06 08:57:59 -0400 |
commit | fcc9aec3de0a1d00cbce47f7274ec0c62122266b (patch) | |
tree | 2dd17d25be679f006f3ecad0eccab57fc376db94 /arch/s390/kvm | |
parent | 57b5981cd38cbca3554c5e663b2361d9adea70c2 (diff) |
KVM: s390: return -EFAULT if copy_from_user() fails
When copy_from_user() fails, this code returns the number of bytes
remaining instead of a negative error code. The positive number is
returned to the user but otherwise it is harmless.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r-- | arch/s390/kvm/guestdbg.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/kvm/guestdbg.c b/arch/s390/kvm/guestdbg.c index 757ccef62fd5..3e8d4092ce30 100644 --- a/arch/s390/kvm/guestdbg.c +++ b/arch/s390/kvm/guestdbg.c | |||
@@ -223,9 +223,10 @@ int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu, | |||
223 | goto error; | 223 | goto error; |
224 | } | 224 | } |
225 | 225 | ||
226 | ret = copy_from_user(bp_data, dbg->arch.hw_bp, size); | 226 | if (copy_from_user(bp_data, dbg->arch.hw_bp, size)) { |
227 | if (ret) | 227 | ret = -EFAULT; |
228 | goto error; | 228 | goto error; |
229 | } | ||
229 | 230 | ||
230 | for (i = 0; i < dbg->arch.nr_hw_bp; i++) { | 231 | for (i = 0; i < dbg->arch.nr_hw_bp; i++) { |
231 | switch (bp_data[i].type) { | 232 | switch (bp_data[i].type) { |