From patchwork Thu Dec 9 14:02:36 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Klauser X-Patchwork-Id: 74893 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 7DB04B7043 for ; Fri, 10 Dec 2010 01:02:44 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756890Ab0LIOCj (ORCPT ); Thu, 9 Dec 2010 09:02:39 -0500 Received: from mx1.zhaw.ch ([160.85.104.50]:57477 "EHLO mx1.zhaw.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756642Ab0LIOCi (ORCPT ); Thu, 9 Dec 2010 09:02:38 -0500 Received: from mx1.zhaw.ch (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 4618545C; Thu, 9 Dec 2010 14:59:36 +0100 (CET) Received: from localhost.localdomain (inst-232.223.zhaw.ch [160.85.232.223]) by mx1.zhaw.ch (Postfix) with ESMTP id 8F548432; Thu, 9 Dec 2010 14:59:35 +0100 (CET) From: Tobias Klauser To: Stephen Hemminger , "David S. Miller" , bridge@lists.linux-foundation.org Cc: netdev@vger.kernel.org Subject: [PATCH] bridge: Fix return value of br_multicast_add_group() Date: Thu, 9 Dec 2010 15:02:36 +0100 Message-Id: <1291903356-30618-1-git-send-email-tklauser@distanz.ch> X-Mailer: git-send-email 1.7.0.4 X-PMX-Version: 5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.12.9.134817 X-PerlMx-Spam: Gauge=IIIIIIII, Probability=8%, Report=' BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1000_LESS 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, BODY_SIZE_800_899 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __MIME_TEXT_ONLY 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __URI_NO_PATH 0, __URI_NO_WWW 0, __URI_NS ' Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If br_multicast_new_group returns NULL, we would return 0 (no error) to the caller, which is not what we want. Instead we should return -ENOMEM in this case. Also replace IS_ERR(x) || !x by IS_ERR_OR_NULL(x) Signed-off-by: Tobias Klauser --- net/bridge/br_multicast.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 326e599..d4e1e81 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -713,8 +713,11 @@ static int br_multicast_add_group(struct net_bridge *br, mp = br_multicast_new_group(br, port, group); err = PTR_ERR(mp); - if (unlikely(IS_ERR(mp) || !mp)) + if (IS_ERR_OR_NULL(mp)) { + if (!mp) + err = -ENOMEM; goto err; + } if (!port) { hlist_add_head(&mp->mglist, &br->mglist);