[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xen-ppc-devel
Subject:    [XenPPC] [linux-ppc-2.6] [POWERPC][XEN] Don't leak frame_list and
From:       "Xen patchbot-linux-ppc-2.6" <patchbot-linux-ppc-2.6 () lists ! xensource ! com>
Date:       2007-02-06 22:30:56
Message-ID: E1HEYq1-000410-VR () xenbits ! xensource ! com
[Download RAW message or body]

# HG changeset patch
# User Jimi Xenidis <jimix@watson.ibm.com>
# Node ID 8bccc5d192be551cfe12e1c4d38bb49144f980aa
# Parent  5eca8383a521939f0d74e68eaddb049c5057742a
[POWERPC][XEN] Don't leak frame_list and don'r post process gnttab if OP fails

Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
---
 arch/powerpc/platforms/xen/gnttab.c |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

diff -r 5eca8383a521 -r 8bccc5d192be arch/powerpc/platforms/xen/gnttab.c
--- a/arch/powerpc/platforms/xen/gnttab.c	Tue Feb 06 16:21:30 2007 -0500
+++ b/arch/powerpc/platforms/xen/gnttab.c	Tue Feb 06 16:30:08 2007 -0500
@@ -244,10 +244,10 @@ static void gnttab_post_map_grant_ref(
 
 int HYPERVISOR_grant_table_op(unsigned int cmd, void *op, unsigned int count)
 {
-	void *desc = NULL;
+	void *desc;
 	void *frame_list = NULL;
 	int argsize;
-	int ret;
+	int ret = -ENOMEM;
 
 	switch (cmd) {
 	case GNTTABOP_map_grant_ref:
@@ -292,17 +292,14 @@ int HYPERVISOR_grant_table_op(unsigned i
 	}
 
 	desc = xencomm_map_no_alloc(op, argsize);
-
-	if (desc == NULL)
-		return -ENOSPC;
-
-	ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_grant_table_op), cmd,
-				 desc, count);
-	if (cmd == GNTTABOP_map_grant_ref)
-		gnttab_post_map_grant_ref(op, count);
-
+	if (desc) {
+		ret = plpar_hcall_norets(XEN_MARK(__HYPERVISOR_grant_table_op),
+					 cmd, desc, count);
+		if (!ret && cmd == GNTTABOP_map_grant_ref)
+			gnttab_post_map_grant_ref(op, count);
+		xencomm_free(desc);
+	}
 	xencomm_free(frame_list);
-	xencomm_free(desc);
 
 	return ret;
 }

_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic