summaryrefslogtreecommitdiffstats
path: root/iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2016-02-18 08:20:05 -0500
committerJosh Boyer <jwboyer@fedoraproject.org>2016-02-18 08:23:33 -0500
commit59915d41e79894c3ddd27a6a83e74b3991b23451 (patch)
tree8c8abbc2f38538f7b8e739d57235ad1326cb00b5 /iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch
parentf062445414ccd9ab1257c8e7a826ec9f723f6193 (diff)
downloadkernel-59915d41e79894c3ddd27a6a83e74b3991b23451.tar.gz
kernel-59915d41e79894c3ddd27a6a83e74b3991b23451.tar.xz
kernel-59915d41e79894c3ddd27a6a83e74b3991b23451.zip
CVE-2015-8812 cxgb3 use after free (rhbz 1303532 1309548)
Diffstat (limited to 'iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch')
-rw-r--r--iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch b/iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch
new file mode 100644
index 000000000..9c517cf49
--- /dev/null
+++ b/iw_cxgb3-Fix-incorrectly-returning-error-on-success.patch
@@ -0,0 +1,41 @@
+From 67f1aee6f45059fd6b0f5b0ecb2c97ad0451f6b3 Mon Sep 17 00:00:00 2001
+From: Hariprasad S <hariprasad@chelsio.com>
+Date: Fri, 11 Dec 2015 13:59:17 +0530
+Subject: [PATCH] iw_cxgb3: Fix incorrectly returning error on success
+
+The cxgb3_*_send() functions return NET_XMIT_ values, which are
+positive integers values. So don't treat positive return values
+as an error.
+
+Signed-off-by: Steve Wise <swise@opengridcomputing.com>
+Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+---
+ drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
+index cb78b1e9bcd9..f504ba73e5dc 100644
+--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
++++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
+@@ -149,7 +149,7 @@ static int iwch_l2t_send(struct t3cdev *tdev, struct sk_buff *skb, struct l2t_en
+ error = l2t_send(tdev, skb, l2e);
+ if (error < 0)
+ kfree_skb(skb);
+- return error;
++ return error < 0 ? error : 0;
+ }
+
+ int iwch_cxgb3_ofld_send(struct t3cdev *tdev, struct sk_buff *skb)
+@@ -165,7 +165,7 @@ int iwch_cxgb3_ofld_send(struct t3cdev *tdev, struct sk_buff *skb)
+ error = cxgb3_ofld_send(tdev, skb);
+ if (error < 0)
+ kfree_skb(skb);
+- return error;
++ return error < 0 ? error : 0;
+ }
+
+ static void release_tid(struct t3cdev *tdev, u32 hwtid, struct sk_buff *skb)
+--
+2.5.0
+