diff options
Diffstat (limited to 'main/linux-grsec/xsa39-pvops-0003-xen-netback-free-already-allocated-memory-on-failure.patch')
-rw-r--r-- | main/linux-grsec/xsa39-pvops-0003-xen-netback-free-already-allocated-memory-on-failure.patch | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/main/linux-grsec/xsa39-pvops-0003-xen-netback-free-already-allocated-memory-on-failure.patch b/main/linux-grsec/xsa39-pvops-0003-xen-netback-free-already-allocated-memory-on-failure.patch deleted file mode 100644 index 1c7180195..000000000 --- a/main/linux-grsec/xsa39-pvops-0003-xen-netback-free-already-allocated-memory-on-failure.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b6b1f17aa44acfe1024968bafb1d1fe7704a749a Mon Sep 17 00:00:00 2001 -From: Ian Campbell <ian.campbell@citrix.com> -Date: Mon, 14 Jan 2013 12:51:22 +0000 -Subject: [PATCH 3/4] xen/netback: free already allocated memory on failure in xen_netbk_get_requests - -Signed-off-by: Ian Campbell <ian.campbell@citrix.com> ---- - drivers/net/xen-netback/netback.c | 16 +++++++++++++++- - 1 files changed, 15 insertions(+), 1 deletions(-) - -diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c -index 975241e..1a99288 100644 ---- a/drivers/net/xen-netback/netback.c -+++ b/drivers/net/xen-netback/netback.c -@@ -978,7 +978,7 @@ static struct gnttab_copy *xen_netbk_get_requests(struct xen_netbk *netbk, - pending_idx = netbk->pending_ring[index]; - page = xen_netbk_alloc_page(netbk, skb, pending_idx); - if (!page) -- return NULL; -+ goto err; - - gop->source.u.ref = txp->gref; - gop->source.domid = vif->domid; -@@ -1000,6 +1000,20 @@ static struct gnttab_copy *xen_netbk_get_requests(struct xen_netbk *netbk, - } - - return gop; -+err: -+ /* -+ * Unwind, freeing all pages and sending error -+ * reponses. -+ */ -+ while (i-- > start) { -+ xen_netbk_idx_release(netbk, frag_get_pending_idx(&frags[i]), -+ XEN_NETIF_RSP_ERROR); -+ } -+ /* The head too, if necessary. */ -+ if (start) -+ xen_netbk_idx_release(netbk, pending_idx, XEN_NETIF_RSP_ERROR); -+ -+ return NULL; - } - - static int xen_netbk_tx_check_gop(struct xen_netbk *netbk, --- -1.7.2.5 - |