From: Vasiliy Kulikov Subject: [PATCH] core: dev: don't call BUG() on bad input Date: Mon, 14 Feb 2011 13:56:06 +0300 Lines: 36 Message-ID: <1297680967-11893-1-git-send-email-segoon@openwall.com> Cc: "David S. Miller" , Eric Dumazet , Tom Herbert , Changli Gao , Jesse Gross , netdev@vger.kernel.org To: linux-kernel@vger.kernel.org X-From: netdev-owner@vger.kernel.org Mon Feb 14 11:56:26 2011 Return-path: Envelope-to: linux-netdev-2@lo.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Pow6Q-0007p5-UJ for linux-netdev-2@lo.gmane.org; Mon, 14 Feb 2011 11:56:23 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753243Ab1BNK4O (ORCPT ); Mon, 14 Feb 2011 05:56:14 -0500 Received: from mail-bw0-f46.google.com ([209.85.214.46]:60909 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752645Ab1BNK4M (ORCPT ); Mon, 14 Feb 2011 05:56:12 -0500 Received: by bwz15 with SMTP id 15so5332720bwz.19 for ; Mon, 14 Feb 2011 02:56:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:sender:from:to:cc:subject:date:message-id :x-mailer; bh=YQn7OCqAZuXaSsRtgaQYckH74o43k6Rppt54AR6UzDo=; b=CxfBmTAbcMf7ySl3szqU/hLEMbY7aJ+FjefneMcTm/AmBnyihy20JuV2k0yYJzcIBi 9+2npC4H9oJn7/ocVARq88j9ZA/4firOi9ZddgGu6c8+o0tWoZylA1ehtHzzk+4I173l H8guqK5rplkryj6+PStELYYt36SpAVfaL2EdY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer; b=G0AqVbcip2oFA2IqAQa6TWwQydu/mJFzt98tGkR1fVNl3m+HaKY433gNCR+Dqdv0gA SGL/R3HRiBBBku/GM4x3gQ8SoAFZiREw6PDtkU55l/mk+yS+v+8YTq7/InPxHoHeTWsv pX0mWUI2HtTXKALBiM+nLsnBWtcC8yInYtyeQ= Received: by 10.204.61.73 with SMTP id s9mr6247440bkh.185.1297680970948; Mon, 14 Feb 2011 02:56:10 -0800 (PST) Received: from localhost (ppp91-77-40-235.pppoe.mtu-net.ru [91.77.40.235]) by mx.google.com with ESMTPS id u23sm1686152bkw.9.2011.02.14.02.56.09 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 14 Feb 2011 02:56:10 -0800 (PST) X-Mailer: git-send-email 1.7.0.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Archived-At: alloc_netdev() may be called with too long name (more that IFNAMSIZ bytes). Currently this leads to BUG(). Other insane inputs (bad txqs, rxqs) and even OOM don't lead to BUG(). Made alloc_netdev() return NULL, like on other errors. Signed-off-by: Vasiliy Kulikov --- Compile tested. net/core/dev.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 6392ea0..12ef4b0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5761,7 +5761,10 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name, size_t alloc_size; struct net_device *p; - BUG_ON(strlen(name) >= sizeof(dev->name)); + if (strnlen(name, sizeof(dev->name)) >= sizeof(dev->name)) { + pr_err("alloc_netdev: Too long device name \n"); + return NULL; + } if (txqs < 1) { pr_err("alloc_netdev: Unable to allocate device " -- 1.7.0.4 -- 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