From patchwork Thu Apr 22 09:53:27 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Carpenter X-Patchwork-Id: 50720 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 9C80FB7D17 for ; Thu, 22 Apr 2010 19:53:46 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751619Ab0DVJxl (ORCPT ); Thu, 22 Apr 2010 05:53:41 -0400 Received: from mail-ww0-f46.google.com ([74.125.82.46]:36253 "EHLO mail-ww0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751017Ab0DVJxk (ORCPT ); Thu, 22 Apr 2010 05:53:40 -0400 Received: by wwb24 with SMTP id 24so4655645wwb.19 for ; Thu, 22 Apr 2010 02:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:mime-version:content-type:content-disposition:user-agent; bh=nqPAEK40SaqT+N3aEregqN1/2jUZvQWd+wuLBi1I2Bg=; b=a14lKX/Z/3f3N9+E8E3SKrY0rn2HhwyoYTeqpC2wTRf1Ian2j03Cxi4JppvMnvwaZ3 XuvXiz/BW6RhWT5DxweKy+cdVR/e9hKeWFwFhAktfoChJ7K4u+HQDkuhlGsE9ngEmf61 U0t248VVZDIA4ZZRFI42L62bejYGuSc02xpIM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=vgEn8cE+YvLSyuIAsSjoKf+wV7uDeHJpFP4Ol+UHASUfZ6msyCGRiT8aOgS43GEuD9 30I5KV/JhJzbcHIzjSJFnp0rZ/MEZjZ4CW/x6j0fszzg/xrQN6hbnK/zyq0E4vjyoqRh DApk9D2gWHmqOrt9/XtRGxU2y1wZEQQDh3aiI= Received: by 10.216.176.143 with SMTP id b15mr5910839wem.155.1271930018803; Thu, 22 Apr 2010 02:53:38 -0700 (PDT) Received: from bicker ([41.222.20.196]) by mx.google.com with ESMTPS id z34sm13250100wbv.2.2010.04.22.02.53.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 22 Apr 2010 02:53:38 -0700 (PDT) Date: Thu, 22 Apr 2010 11:53:27 +0200 From: Dan Carpenter To: netdev@vger.kernel.org Cc: Eric Dumazet , Patrick McHardy , "Eric W. Biederman" , Mitch Williams , "David S. Miller" , kernel-janitors@vger.kernel.org Subject: [patch] rtnetlink: potential ERR_PTR dereference Message-ID: <20100422095327.GP29647@bicker> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In the original code, if rtnl_create_link() returned an ERR_PTR then that would get passed to rtnl_configure_link() which dereferences it. Signed-off-by: Dan Carpenter Acked-by: Patrick McHardy --- Found by a static checker, and compile tested only. :/ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 4568120..fe776c9 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -1270,10 +1270,11 @@ replay: err = ops->newlink(net, dev, tb, data); else err = register_netdevice(dev); - if (err < 0 && !IS_ERR(dev)) { + + if (err < 0 && !IS_ERR(dev)) free_netdev(dev); + if (err < 0) goto out; - } err = rtnl_configure_link(dev, ifm); if (err < 0)