1 From: Vasiliy Kulikov <segoon@openwall.com>
2 Subject: [PATCH] core: dev: don't call BUG() on bad input
3 Date: Mon, 14 Feb 2011 13:56:06 +0300
5 Message-ID: <1297680967-11893-1-git-send-email-segoon@openwall.com>
6 Cc: "David S. Miller" <davem@davemloft.net>,
7 Eric Dumazet <eric.dumazet@gmail.com>,
8 Tom Herbert <therbert@google.com>,
9 Changli Gao <xiaosuo@gmail.com>,
10 Jesse Gross <jesse@nicira.com>, netdev@vger.kernel.org
11 To: linux-kernel@vger.kernel.org
12 X-From: netdev-owner@vger.kernel.org Mon Feb 14 11:56:26 2011
13 Return-path: <netdev-owner@vger.kernel.org>
14 Envelope-to: linux-netdev-2@lo.gmane.org
15 Received: from vger.kernel.org ([209.132.180.67])
16 by lo.gmane.org with esmtp (Exim 4.69)
17 (envelope-from <netdev-owner@vger.kernel.org>)
19 for linux-netdev-2@lo.gmane.org; Mon, 14 Feb 2011 11:56:23 +0100
20 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
21 id S1753243Ab1BNK4O (ORCPT <rfc822;linux-netdev-2@m.gmane.org>);
22 Mon, 14 Feb 2011 05:56:14 -0500
23 Received: from mail-bw0-f46.google.com ([209.85.214.46]:60909 "EHLO
24 mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
25 with ESMTP id S1752645Ab1BNK4M (ORCPT
26 <rfc822;netdev@vger.kernel.org>); Mon, 14 Feb 2011 05:56:12 -0500
27 Received: by bwz15 with SMTP id 15so5332720bwz.19
28 for <multiple recipients>; Mon, 14 Feb 2011 02:56:11 -0800 (PST)
29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
31 h=domainkey-signature:sender:from:to:cc:subject:date:message-id
33 bh=YQn7OCqAZuXaSsRtgaQYckH74o43k6Rppt54AR6UzDo=;
34 b=CxfBmTAbcMf7ySl3szqU/hLEMbY7aJ+FjefneMcTm/AmBnyihy20JuV2k0yYJzcIBi
35 9+2npC4H9oJn7/ocVARq88j9ZA/4firOi9ZddgGu6c8+o0tWoZylA1ehtHzzk+4I173l
36 H8guqK5rplkryj6+PStELYYt36SpAVfaL2EdY=
37 DomainKey-Signature: a=rsa-sha1; c=nofws;
39 h=sender:from:to:cc:subject:date:message-id:x-mailer;
40 b=G0AqVbcip2oFA2IqAQa6TWwQydu/mJFzt98tGkR1fVNl3m+HaKY433gNCR+Dqdv0gA
41 SGL/R3HRiBBBku/GM4x3gQ8SoAFZiREw6PDtkU55l/mk+yS+v+8YTq7/InPxHoHeTWsv
42 pX0mWUI2HtTXKALBiM+nLsnBWtcC8yInYtyeQ=
43 Received: by 10.204.61.73 with SMTP id s9mr6247440bkh.185.1297680970948;
44 Mon, 14 Feb 2011 02:56:10 -0800 (PST)
45 Received: from localhost (ppp91-77-40-235.pppoe.mtu-net.ru [91.77.40.235])
46 by mx.google.com with ESMTPS id u23sm1686152bkw.9.2011.02.14.02.56.09
47 (version=TLSv1/SSLv3 cipher=OTHER);
48 Mon, 14 Feb 2011 02:56:10 -0800 (PST)
49 X-Mailer: git-send-email 1.7.0.4
50 Sender: netdev-owner@vger.kernel.org
52 List-ID: <netdev.vger.kernel.org>
53 X-Mailing-List: netdev@vger.kernel.org
54 Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1099668>
56 alloc_netdev() may be called with too long name (more that IFNAMSIZ bytes).
57 Currently this leads to BUG(). Other insane inputs (bad txqs, rxqs) and
58 even OOM don't lead to BUG(). Made alloc_netdev() return NULL, like on
61 Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
65 net/core/dev.c | 5 ++++-
66 1 files changed, 4 insertions(+), 1 deletions(-)
68 diff --git a/net/core/dev.c b/net/core/dev.c
69 index 6392ea0..12ef4b0 100644
72 @@ -5761,7 +5761,10 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
76 - BUG_ON(strlen(name) >= sizeof(dev->name));
77 + if (strnlen(name, sizeof(dev->name)) >= sizeof(dev->name)) {
78 + pr_err("alloc_netdev: Too long device name \n");
83 pr_err("alloc_netdev: Unable to allocate device "
88 To unsubscribe from this list: send the line "unsubscribe netdev" in
89 the body of a message to majordomo@vger.kernel.org
90 More majordomo info at http://vger.kernel.org/majordomo-info.html