aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWANG Cong <xiyou.wangcong@gmail.com>2017-02-13 14:13:16 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-02-26 05:10:50 -0500
commit90aa7993d5c7fdc476009189a9b2a65d97fe9350 (patch)
treeff563a2b9bf343ccdf906f2c9f61877cb9b96c71
parent1409935400aa1faffd9fe1830adb8ea08ea424d2 (diff)
kcm: fix a null pointer dereference in kcm_sendmsg()
[ Upstream commit cd27b96bc13841ee7af25837a6ae86fee87273d6 ] In commit 98e3862ca2b1 ("kcm: fix 0-length case for kcm_sendmsg()") I tried to avoid skb allocation for 0-length case, but missed a check for NULL pointer in the non EOR case. Fixes: 98e3862ca2b1 ("kcm: fix 0-length case for kcm_sendmsg()") Reported-by: Dmitry Vyukov <dvyukov@google.com> Cc: Tom Herbert <tom@herbertland.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Acked-by: Tom Herbert <tom@herbertland.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/kcm/kcmsock.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
index 64f0e8531af0..a646f3481240 100644
--- a/net/kcm/kcmsock.c
+++ b/net/kcm/kcmsock.c
@@ -1044,8 +1044,10 @@ wait_for_memory:
1044 } else { 1044 } else {
1045 /* Message not complete, save state */ 1045 /* Message not complete, save state */
1046partial_message: 1046partial_message:
1047 kcm->seq_skb = head; 1047 if (head) {
1048 kcm_tx_msg(head)->last_skb = skb; 1048 kcm->seq_skb = head;
1049 kcm_tx_msg(head)->last_skb = skb;
1050 }
1049 } 1051 }
1050 1052
1051 KCM_STATS_ADD(kcm->stats.tx_bytes, copied); 1053 KCM_STATS_ADD(kcm->stats.tx_bytes, copied);