vhost: fix the memory leak which will happen when memory_access_ok fails
We need to free newmem when vhost_set_memory() fails to complete. Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
d3553a5249
commit
a02c37891a
|
@ -337,8 +337,10 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!memory_access_ok(d, newmem, vhost_has_feature(d, VHOST_F_LOG_ALL)))
|
if (!memory_access_ok(d, newmem, vhost_has_feature(d, VHOST_F_LOG_ALL))) {
|
||||||
|
kfree(newmem);
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
}
|
||||||
oldmem = d->memory;
|
oldmem = d->memory;
|
||||||
rcu_assign_pointer(d->memory, newmem);
|
rcu_assign_pointer(d->memory, newmem);
|
||||||
synchronize_rcu();
|
synchronize_rcu();
|
||||||
|
|
Loading…
Reference in New Issue