From patchwork Fri Apr 10 11:58:18 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erik Hugne X-Patchwork-Id: 460054 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 071D41402A5 for ; Fri, 10 Apr 2015 22:02:19 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755628AbbDJMCO (ORCPT ); Fri, 10 Apr 2015 08:02:14 -0400 Received: from sessmg22.ericsson.net ([193.180.251.58]:56603 "EHLO sessmg22.ericsson.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755605AbbDJMCN (ORCPT ); Fri, 10 Apr 2015 08:02:13 -0400 X-AuditID: c1b4fb3a-f79146d0000070a3-d4-5527bbbf6132 Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.253.124]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id B6.E9.28835.FBBB7255; Fri, 10 Apr 2015 14:02:08 +0200 (CEST) Received: from tipsy.lab.linux.ericsson.se (10.35.28.120) by ESESSHC011.ericsson.se (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.210.2; Fri, 10 Apr 2015 14:02:07 +0200 From: To: , , , CC: , Erik Hugne Subject: [PATCH v2] tipc: don't reject messages if reversal fails Date: Fri, 10 Apr 2015 13:58:18 +0200 Message-ID: <1428667098-9504-1-git-send-email-erik.hugne@ericsson.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 X-Originating-IP: [10.35.28.120] X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupkluLIzCtJLcpLzFFi42KZGfG3RvfAbvVQg5l9QhbHFohZbDmfZfH4 +nVmB2aP3Qs+M3l83iTnsX7LVqYA5igum5TUnMyy1CJ9uwSujINTD7MUnOCs2Pyul7GB8SV7 FyMnh4SAicTrGT3MELaYxIV769m6GLk4hASOMkr8m9fIAuFsZ5RY3TyRDaSKTUBe4vyi20wg tohAvsS1tlusIDazQLDEvvXtjCC2sICjxJ+ln8BsFgFViX13zoBt4xVwk+hYNRVqm5zE+eM/ mSHighInZz5hgZgjIXHwxQuwuJCAisT9l7OhLlWQ+Dazm2kCI/8sJC2zkLQsYGRaxShanFpc nJtuZKSXWpSZXFycn6eXl1qyiREYdge3/LbawXjwueMhRgEORiUe3gdp6qFCrIllxZW5hxil OViUxHntjA+FCAmkJ5akZqemFqQWxReV5qQWH2Jk4uCUamBsbfzyuttul+uF5AaRgMBvjNqR xwLOBk3bfvauiPTNt5+/TKtQmX+BI3Iyd5Vc++TewLsfWu/smluwelbHwQ9bFr6r+74/2pg5 bE7WIg65Z5aKJevKJnBccay94vKexdw7Qkt8/qWYuW42zzfa2Vxh5rh5llX1keWmF74uM69l Xf6q+fVBxK19SizFGYmGWsxFxYkA7B091xwCAAA= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Erik Hugne When we fail to deliver a message to a socket, it is subject to message reversal. If the call to tipc_msg_reverse fails, we are passing dnode uninitialized to tipc_link_xmit_skb which causes the packet to either be dropped, or sent out to a random link. In the worst case this leads to a link reset. We fix this by only transmitting the message if reversal succeded. Also, the redundant check for 'err' is removed, because if the message was not consumed, it will always be set. Signed-off-by: Erik Hugne --- v2: err check fix according to comments from Billie Alsup net/tipc/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/tipc/socket.c b/net/tipc/socket.c index ee90d74..d215f73 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -1701,7 +1701,7 @@ static int tipc_backlog_rcv(struct sock *sk, struct sk_buff *skb) atomic_add(truesize, dcnt); return 0; } - if (!err || tipc_msg_reverse(tsk_own_node(tsk), skb, &dnode, -err)) + if (tipc_msg_reverse(tsk_own_node(tsk), skb, &dnode, -err)) tipc_link_xmit_skb(net, skb, dnode, tsk->portid); return 0; }