[PATCH 3/3] vhost: fix the memory leak which will happen when memory_access_ok fails

2010-05-27 Thread Takuya Yoshikawa
We need to free newmem when vhost_set_memory() fails to complete.

Signed-off-by: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp
---
 drivers/vhost/vhost.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 9633a3c..1241a22 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -337,8 +337,10 @@ static long vhost_set_memory(struct vhost_dev *d, struct 
vhost_memory __user *m)
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;
+   }
oldmem = d-memory;
rcu_assign_pointer(d-memory, newmem);
synchronize_rcu();
-- 
1.7.0.4

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/3] vhost: fix the memory leak which will happen when memory_access_ok fails

2010-05-27 Thread Michael S. Tsirkin
On Thu, May 27, 2010 at 07:03:56PM +0900, Takuya Yoshikawa wrote:
 We need to free newmem when vhost_set_memory() fails to complete.
 
 Signed-off-by: Takuya Yoshikawa yoshikawa.tak...@oss.ntt.co.jp
 ---

Thanks, applied.

  drivers/vhost/vhost.c |4 +++-
  1 files changed, 3 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
 index 9633a3c..1241a22 100644
 --- a/drivers/vhost/vhost.c
 +++ b/drivers/vhost/vhost.c
 @@ -337,8 +337,10 @@ static long vhost_set_memory(struct vhost_dev *d, struct 
 vhost_memory __user *m)
   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;
 + }
   oldmem = d-memory;
   rcu_assign_pointer(d-memory, newmem);
   synchronize_rcu();
 -- 
 1.7.0.4
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html