aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Kiss <zoltan.kiss@citrix.com>2014-07-18 14:08:03 -0400
committerDavid S. Miller <davem@davemloft.net>2014-07-20 23:56:06 -0400
commitb42cc6e421e7bf74e545483aa34b99d2a2ca6d3a (patch)
tree960054d039652e384e220ede40ea9931cd9a202e
parent1a998d3e6bc1e44f4c0bc7509bdedef8ed3845ec (diff)
xen-netback: Fix releasing frag_list skbs in error path
When the grant operations failed, the skb is freed up eventually, and it tries to release the frags, if there is any. For the main skb nr_frags is set to 0 to avoid this, but on the frag_list it iterates through the frags array, and tries to call put_page on the page pointer which contains garbage at that time. Signed-off-by: Zoltan Kiss <zoltan.kiss@citrix.com> Reported-by: Armin Zentai <armin.zentai@ezit.hu> Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: xen-devel@lists.xenproject.org Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/xen-netback/netback.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index a773f2016bad..8cbf60d4689e 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1521,7 +1521,16 @@ static int xenvif_tx_submit(struct xenvif_queue *queue)
1521 1521
1522 /* Check the remap error code. */ 1522 /* Check the remap error code. */
1523 if (unlikely(xenvif_tx_check_gop(queue, skb, &gop_map, &gop_copy))) { 1523 if (unlikely(xenvif_tx_check_gop(queue, skb, &gop_map, &gop_copy))) {
1524 /* If there was an error, xenvif_tx_check_gop is
1525 * expected to release all the frags which were mapped,
1526 * so kfree_skb shouldn't do it again
1527 */
1524 skb_shinfo(skb)->nr_frags = 0; 1528 skb_shinfo(skb)->nr_frags = 0;
1529 if (skb_has_frag_list(skb)) {
1530 struct sk_buff *nskb =
1531 skb_shinfo(skb)->frag_list;
1532 skb_shinfo(nskb)->nr_frags = 0;
1533 }
1525 kfree_skb(skb); 1534 kfree_skb(skb);
1526 continue; 1535 continue;
1527 } 1536 }