From patchwork Sun Nov 12 23:15:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837298 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="OAIBa649"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqS105Bjz9s7m for ; Mon, 13 Nov 2017 10:17:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751579AbdKLXRY (ORCPT ); Sun, 12 Nov 2017 18:17:24 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:40380 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751062AbdKLXPY (ORCPT ); Sun, 12 Nov 2017 18:15:24 -0500 Received: by mail-wm0-f66.google.com with SMTP id b189so4841675wmd.5 for ; Sun, 12 Nov 2017 15:15:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=81dGXIuXgWEqkpjG58cHHUzhBHzxxJm1zUC1EMYiX7o=; b=OAIBa649e/3HEjFD4Ojd/V8mJ5qLt8P+TDn/BTIfLhtjZHSZ2oqUquDYfsOsiaEVA8 TKbtY2ykcLXQIkRdBj79f692SXDvfXevoR4a2Xu+dt4LRbjJFTT67KcGp2Ia/TZQu7Wl L6Up2Pip6ZxtfxzWMBkOc2+9XRrO1Ln+S8OVM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=81dGXIuXgWEqkpjG58cHHUzhBHzxxJm1zUC1EMYiX7o=; b=JBXXpaMMu0iYHpnZBpE2db+lctlXCBZjWpLTu1wl3TRa6aaqHjpr+5fPNtpDjEEDyf tstbdgQh26gFc5V0ePgD1jnjJzV37lTNthclsnSB0nnhY4R4r4AKNpZ3ZPtFd3zRfHUl L4mZpgRGpgwnBi61fQn2/gH5tMkN3qlwM9p2U6bgEX4Xzx/cFMvrgBsx8P2riyeBLr7I Lx0J8y/Ka8KHFjIJxWo160znDsfsUc1y65zwb98eUgj2jIDyZmRIfop6oWuu6ndYpZme rTukDqYAel/sgQIz84vMZv0k7c/jGb6T6KszOnV3nvFoUrbP+SisCtOtvI4aWU0MagdH tyMQ== X-Gm-Message-State: AJaThX5bJZLHqAfDHeQS1nvZ8XRQhD/geyRuAxefTA2gMaQ3oVZfUNIT vQVbeMi6kjShAREWqP4143cBeA== X-Google-Smtp-Source: AGs4zMb/5SCJlWWjmchAv8uJu9RY1q5fjiy6HLqcY7hCjShfSIVf21njfASQJyjvS644Ycj/jAbcDQ== X-Received: by 10.28.5.196 with SMTP id 187mr4408943wmf.55.1510528523565; Sun, 12 Nov 2017 15:15:23 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:23 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/7] net: core: improve sanity checking in __dev_alloc_name Date: Mon, 13 Nov 2017 00:15:04 +0100 Message-Id: <20171112231511.4666-2-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org __dev_alloc_name is called from the public (and exported) dev_alloc_name(), so we don't have a guarantee that strlen(name) is at most IFNAMSIZ. If somebody manages to get __dev_alloc_name called with a % char beyond the 31st character, we'd be making a snprintf() call that will very easily crash the kernel (using an appropriate %p extension, we'll likely dereference some completely bogus pointer). In the normal case where strlen() is sane, we don't even save anything by limiting to IFNAMSIZ, so just use strchr(). Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index 11596a302a26..87e19804757b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1062,7 +1062,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf) unsigned long *inuse; struct net_device *d; - p = strnchr(name, IFNAMSIZ-1, '%'); + p = strchr(name, '%'); if (p) { /* * Verify the string as this thing may have come from From patchwork Sun Nov 12 23:15:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837294 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="erHLjIJ9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqQn324kz9s7m for ; Mon, 13 Nov 2017 10:16:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751454AbdKLXP2 (ORCPT ); Sun, 12 Nov 2017 18:15:28 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:53009 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751376AbdKLXP0 (ORCPT ); Sun, 12 Nov 2017 18:15:26 -0500 Received: by mail-wm0-f65.google.com with SMTP id t139so11857362wmt.1 for ; Sun, 12 Nov 2017 15:15:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vxk9Nf0O0VhMMY19V8duRyDkYJPN1nWQlia2VzLuuNE=; b=erHLjIJ97j5H5q4R62h4TMZUH0T9IchGCcCsG0L9EsFfTucrRJzg1lrM5ED20R7Qe1 xCJLFQgzoYtpFf7xi4wLywWY6fF2A6Eq9ebLFuVlEiZ66OJvjFO6z+XVt43j/WQBkeIi yN3TayHSJZ2IxtueIAEybZZ18HisooKs742Cs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vxk9Nf0O0VhMMY19V8duRyDkYJPN1nWQlia2VzLuuNE=; b=Pl4JxZyz6C2IHoi01M95+tnRz53B6ZADDy4vRpqsK3Cfi4mkqiUNRWhnyl7eVCPsTG ot30mI9jtAzL8a/Z3H3AtRxkln33Yu0WDTqyB6iYVBH/zkmWZtSqX/qoGKZtghlXIOMT popQHkx31SXHuHbC3mDyu8gdn7+Lg1HKpXEnx61i2Y16R3ajwptZKz0dGI7K9/Lg3WkH JFPrWi6gCORxfNucoEL0SB8s99xrM+Sma2eztLD4D9fqKIg0W+2hxgfFz8AqR4cDOlqJ BZMsC5cS9bA3JhIoT6zFKu4GQC2gCNMQj72miDmbsCkUqXbdwwUJLZ9mmIUhzQHj1H+n 8Emw== X-Gm-Message-State: AJaThX7MCGDaLUXN0oftOAJfHxXRiVDmpBME1ZMnbBQILMNysuXDe9ky xgCja4EN6YyYPX6o0FVVAi/zWQ== X-Google-Smtp-Source: AGs4zMaKDH92d4QGPqEz0/nKU2lYt50VSzqgSXZ1GFQ5ZIh+AmlludXMxz8rN/fWFa1FocLK3+5ptQ== X-Received: by 10.28.16.149 with SMTP id 143mr5298596wmq.62.1510528524899; Sun, 12 Nov 2017 15:15:24 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:24 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/7] net: core: move dev_alloc_name_ns a little higher Date: Mon, 13 Nov 2017 00:15:05 +0100 Message-Id: <20171112231511.4666-3-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org No functional change. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 87e19804757b..240ae6bc1097 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1105,6 +1105,19 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf) return -ENFILE; } +static int dev_alloc_name_ns(struct net *net, + struct net_device *dev, + const char *name) +{ + char buf[IFNAMSIZ]; + int ret; + + ret = __dev_alloc_name(net, name, buf); + if (ret >= 0) + strlcpy(dev->name, buf, IFNAMSIZ); + return ret; +} + /** * dev_alloc_name - allocate a name for a device * @dev: device @@ -1134,19 +1147,6 @@ int dev_alloc_name(struct net_device *dev, const char *name) } EXPORT_SYMBOL(dev_alloc_name); -static int dev_alloc_name_ns(struct net *net, - struct net_device *dev, - const char *name) -{ - char buf[IFNAMSIZ]; - int ret; - - ret = __dev_alloc_name(net, name, buf); - if (ret >= 0) - strlcpy(dev->name, buf, IFNAMSIZ); - return ret; -} - int dev_get_valid_name(struct net *net, struct net_device *dev, const char *name) { From patchwork Sun Nov 12 23:15:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837296 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="VKynJlZ1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqRX1rl8z9s7m for ; Mon, 13 Nov 2017 10:17:12 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751878AbdKLXQ7 (ORCPT ); Sun, 12 Nov 2017 18:16:59 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:33628 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751391AbdKLXP1 (ORCPT ); Sun, 12 Nov 2017 18:15:27 -0500 Received: by mail-wm0-f65.google.com with SMTP id r68so12083334wmr.0 for ; Sun, 12 Nov 2017 15:15:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=E9Q90kFi5CdWwPNTXsfV3QNEe+PRZlr5TaJGQkgX4ac=; b=VKynJlZ1MSfY5/zi2xqSyFcVqT45HH2u1KY9WnHJftI01oovZYwf309bBvApdFcd0P oarhOYkddLH7AX2cFxdSvmuPR2QGIk5GnsfakTA32VOmjlqRnsz6lmpoqd/FkLtY+qaR wHnwH2WgR1KSdarruwT5evtYwhWMaFuv1iB2M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=E9Q90kFi5CdWwPNTXsfV3QNEe+PRZlr5TaJGQkgX4ac=; b=Soy7X9QrqybR4gKVWWkBrm+VSDB7C4Tsxx9iu9fYpWuKXpv1WgGU5sVNopCweC902h 0UKTM4exAb1R9vnayvsdsDJI31v15SZiWiHdJBxTKzqDDqDYzzlmBVZBpJTarhJTYXzz 6tBtrS6CrroT6RMIyr6o0dpnmZX5FNz4AwOrZrwzU0R06d6p9xQOSaOgQbGk7EF8Rf8f PlIoA8FSGPe0VC4Kcmty+Qsfks+Xoj1kvbKM1qhfX2ZiNjmwl0rPu+PEMpDEvjgbQSG9 lOWVs99yqNvfmQzLEClg9QW2+9O86yZOrgp655opfIHu7xgSR1TbnVyZw17/VUvf0Zm0 jVxA== X-Gm-Message-State: AJaThX7WgGTVkKcuJ1I37OYV4OAMD962U7yc7pWERhToAZAozDQNtpG1 offzlbrOKYA7kiAlbFJAfb8B6w== X-Google-Smtp-Source: AGs4zMbYbb+ZsiZmhRFyFFydBLxIBsHXcrv1pQrAjUf9iEpTBoxHr6lM+wBRe4eYcN1neYdIK7UMRA== X-Received: by 10.28.107.211 with SMTP id a80mr2228823wmi.71.1510528526114; Sun, 12 Nov 2017 15:15:26 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:25 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/7] net: core: eliminate dev_alloc_name{, _ns} code duplication Date: Mon, 13 Nov 2017 00:15:06 +0100 Message-Id: <20171112231511.4666-4-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org dev_alloc_name contained a BUG_ON(), which I moved to dev_alloc_name_ns; the only other caller of that already has the same BUG_ON. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 240ae6bc1097..1077bfe97bde 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1112,6 +1112,7 @@ static int dev_alloc_name_ns(struct net *net, char buf[IFNAMSIZ]; int ret; + BUG_ON(!net); ret = __dev_alloc_name(net, name, buf); if (ret >= 0) strlcpy(dev->name, buf, IFNAMSIZ); @@ -1134,16 +1135,7 @@ static int dev_alloc_name_ns(struct net *net, int dev_alloc_name(struct net_device *dev, const char *name) { - char buf[IFNAMSIZ]; - struct net *net; - int ret; - - BUG_ON(!dev_net(dev)); - net = dev_net(dev); - ret = __dev_alloc_name(net, name, buf); - if (ret >= 0) - strlcpy(dev->name, buf, IFNAMSIZ); - return ret; + return dev_alloc_name_ns(dev_net(dev), dev, name); } EXPORT_SYMBOL(dev_alloc_name); From patchwork Sun Nov 12 23:15:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837295 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="F9S2L8GX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqRD1WhFz9s7m for ; Mon, 13 Nov 2017 10:16:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751868AbdKLXQw (ORCPT ); Sun, 12 Nov 2017 18:16:52 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:51418 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751403AbdKLXP2 (ORCPT ); Sun, 12 Nov 2017 18:15:28 -0500 Received: by mail-wm0-f68.google.com with SMTP id b189so5009454wmd.0 for ; Sun, 12 Nov 2017 15:15:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HBSwLYS02XWW08OXj1N3HYNmgfAi+FntN1Pl8w5eRrU=; b=F9S2L8GXmnvuJ0gWmcz7RH0KzH624/jGv55H7dGfyVwIPRxGLZtDbW9FTTUuUT90hE RSnPEDRaSoCy2RUVCxDhkWeyceMDq2axaIciQK/RsNkWHo1yC0Woo4rZYZG5OrJSInJI z7H4FHDyHFrQSMJPXhheq1WWlfd4MzsHttNtI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HBSwLYS02XWW08OXj1N3HYNmgfAi+FntN1Pl8w5eRrU=; b=HWza37izSemjCy9yervjNtKrleY/+5lsAOiHzKehMYrW8zCyONybbo83eW6AID4mjF KasyVrgKIG225/FEdl+QxDOz9bPQPirZZIYTRQe55A+OCCf1WiWcMyL9hjQ1jdsljMOh v0CDxxqBfcSQGJOk84drYabReWCWPqSZxPmPHj4Eh8katO0GSw4CowmxgfZ6eGm5m5pP 59ma7pnoW9OxMWC3tg3WuDNG4EVD5/1eyCA2R1oArdN6eHzpel5RtkNH0RGZqO2XMS3p IG41Id3Ajc9X4wnSO8r2UpnYZF56HrkWn5XkPRE3/5YvAGN6fTTf5W7FChn1k6t2hND/ deTQ== X-Gm-Message-State: AJaThX7ylPrulTDMEvTSZStLrepx3zzn3v9DjF8WQt3uH5o4Hdo4h36R ax2SHfKP5+BSTSP8vF/C9IfBS00y X-Google-Smtp-Source: AGs4zMYGEaiR1TWd88AKhuWMmFhO6ONHt8r0+nYyQI8Xn98zZEApYKchKH09yAmUmlnOEgWxv370pg== X-Received: by 10.28.20.213 with SMTP id 204mr4440291wmu.132.1510528527291; Sun, 12 Nov 2017 15:15:27 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:26 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/7] net: core: drop pointless check in __dev_alloc_name Date: Mon, 13 Nov 2017 00:15:07 +0100 Message-Id: <20171112231511.4666-5-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The only caller passes a stack buffer as buf, so it won't equal the passed-in name. Moreover, we're already using buf as a scratch buffer inside the if (p) {} block, so if buf and name were the same, that snprintf() call would be overwriting its own format string. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 1077bfe97bde..14541b7a3195 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1093,8 +1093,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf) free_page((unsigned long) inuse); } - if (buf != name) - snprintf(buf, IFNAMSIZ, name, i); + snprintf(buf, IFNAMSIZ, name, i); if (!__dev_get_by_name(net, buf)) return i; From patchwork Sun Nov 12 23:15:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837292 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="LvaNIDl6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqQD3wkkz9t1G for ; Mon, 13 Nov 2017 10:16:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751535AbdKLXPd (ORCPT ); Sun, 12 Nov 2017 18:15:33 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:44007 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751489AbdKLXPa (ORCPT ); Sun, 12 Nov 2017 18:15:30 -0500 Received: by mail-wr0-f194.google.com with SMTP id 4so12928657wrt.0 for ; Sun, 12 Nov 2017 15:15:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qsxZk48C6ei8f8/iPHI75R7ueY4gcARMTNRzYwiUlRc=; b=LvaNIDl64/flnFzLv4OL29E7qXRiIlfk73pVG324++7HQvEpSX8ple2XdKWmEaZxll j2UyyMN9NyzEfPWo8vhVCQdfZ0i7HlEBPhUCky+ORCvUtDL/hJ9NODg0YAQUQlpdOCTA BDIYM5nmgDJuVRNdXR6L+QGDC0R1IvHjUXJR0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qsxZk48C6ei8f8/iPHI75R7ueY4gcARMTNRzYwiUlRc=; b=k+N8CgNoToEq+Nlf9GItYhaYV9VTxNG4mFeL5pcR9Y0Ye8SSfEqekarVq5oHGGKaPi dWGhgq/h1uvpbH1jkbpbkrLvuqYdaO7qurIDaopQFRS5PnvTfPaSb59LUxuZAh6yg0NE 2U6UT6qar1+yV8EMRMqS8sTYSW2SGGnLi3obebhnYooIHbHH2weU/V0CB0+ov6U/19yb vwgnYQpkO3eUOJTALh/ecIjFAVfdDgZ04uzKLrSri2DFUmbnJYYY1yglqOot2If2CVKF a18MRGO10s7HQJ3/9buYenSrxolNxFUtAZCfgQhn1Ulf+FYA5vQLHQzhx7tXxQQfmopA 7vaQ== X-Gm-Message-State: AJaThX78vU4bmyRFZ+7AUPhFaBgVFprht2aDt3lJJJYFn6bwAck3mM3P jgsfJOnbyqoI1fePHvRUA8xQlQ== X-Google-Smtp-Source: AGs4zMbHJ/6SAVcc/XRG38iQBR0tbyGttG90T1BLnVQxwFY6sY8y6MzRQ02qT52J33NbsLp/TeDOBQ== X-Received: by 10.223.154.202 with SMTP id a68mr5403403wrc.8.1510528528968; Sun, 12 Nov 2017 15:15:28 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:28 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/7] net: core: check dev_valid_name in __dev_alloc_name Date: Mon, 13 Nov 2017 00:15:08 +0100 Message-Id: <20171112231511.4666-6-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We currently only exclude non-sysfs-friendly names via dev_get_valid_name; there doesn't seem to be a reason to allow such names when we're called via dev_alloc_name. This does duplicate the dev_valid_name check in the dev_get_valid_name() case; we'll fix that shortly. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 14541b7a3195..c0a92cf27566 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1062,6 +1062,9 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf) unsigned long *inuse; struct net_device *d; + if (!dev_valid_name(name)) + return -EINVAL; + p = strchr(name, '%'); if (p) { /* From patchwork Sun Nov 12 23:15:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837293 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="WXDo/O+Z"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqQQ1zp2z9s7m for ; Mon, 13 Nov 2017 10:16:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751711AbdKLXQL (ORCPT ); Sun, 12 Nov 2017 18:16:11 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:55411 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750943AbdKLXPb (ORCPT ); Sun, 12 Nov 2017 18:15:31 -0500 Received: by mail-wr0-f193.google.com with SMTP id l8so12889142wre.12 for ; Sun, 12 Nov 2017 15:15:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=52oD2lUcSfG79pV3df3ydWwlzjG6Vl7//pNVbjsnMmA=; b=WXDo/O+ZjK0hhsoRSAAwyck3BXprO2nP+StxUYV7swCZ5reXo+pMtUUH+IBZ963yTq qRYmz09uomdnf4kn8H3rJapcOlKYptucUvUyOU76oYgVcM29pUJxmHlB9di+ehvpBNsZ 7apm2+0WMAaVVBuFsbI0pnGAMoD3TiVphuPeQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=52oD2lUcSfG79pV3df3ydWwlzjG6Vl7//pNVbjsnMmA=; b=eLxEFhGc9QNsA2H6w5w0BbRtehckAurJ2qTcvI5QGJNwBERkr1AwEJ4ciS985hLiKF od/VQ1QuKfU8jGkVIgrfRHz+RsvcLqDJh09IizIooIj0AiJ9Fb6wpTQ3xObjfRZMqqeJ gj/jr7PGRZDo6HRlnxGbB5tSZ1U3geNvgnNbpUTE29mkTGeVk/qQMkqVkZyO6Ek510MP neADWUx29LbIfs8EH7AmAx11+TdcHpmnBY0eYovFieK/bYtqtwvFl//L+vJCwUk0QaXb 2ssQPFq6ZdKQgxFgdCd2TSRk6Aa7yUlu0cEhDd+2dK551/Sbfkqw48O7eegHzyC7VOWo gxnw== X-Gm-Message-State: AJaThX5lUhFx1tqDDBqJpE6jYGGVlLkmtJ+b8swQUnE+gFI8ZzVQABpO 9aVP/95uB0WcZ8/kqAIZbUQSrA== X-Google-Smtp-Source: AGs4zMbDiOlcQzst7pfASIyoJUZtSANemSF/SYpTt44HM37WcC20InZTau49hU99C5VOGjzZPdFQbw== X-Received: by 10.223.160.86 with SMTP id l22mr5519030wrl.187.1510528530706; Sun, 12 Nov 2017 15:15:30 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:30 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/7] net: core: maybe return -EEXIST in __dev_alloc_name Date: Mon, 13 Nov 2017 00:15:09 +0100 Message-Id: <20171112231511.4666-7-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If we're given format string with no %d, -EEXIST is a saner error code. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index c0a92cf27566..7c08b4ca7b76 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1104,7 +1104,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf) * when the name is long and there isn't enough space left * for the digits, or if all bits are used. */ - return -ENFILE; + return p ? -ENFILE : -EEXIST; } static int dev_alloc_name_ns(struct net *net, From patchwork Sun Nov 12 23:15:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 837291 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=rasmusvillemoes.dk header.i=@rasmusvillemoes.dk header.b="R6WooPFB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZqPy5BmXz9s7m for ; Mon, 13 Nov 2017 10:15:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751646AbdKLXPo (ORCPT ); Sun, 12 Nov 2017 18:15:44 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:54835 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751376AbdKLXPd (ORCPT ); Sun, 12 Nov 2017 18:15:33 -0500 Received: by mail-wr0-f193.google.com with SMTP id l22so12889778wrc.11 for ; Sun, 12 Nov 2017 15:15:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CfL5cxIzvunWTkcUQbevYPKtc1a6oS+SSPG9PBYu+vo=; b=R6WooPFBjaSAlvBVJ7FEnVdDxO44bZvLMtdzcwsfJpriD1b35KmdONtTl4il+X4dN3 K/Nj8XFSuKx1KFgJMp5ffPoGavEXE1YuQJ1bOq6ntf6rDRFtrA6/Grqt8RIINwI0tDLt 8rDccdgWEZMn0IM0ejHAEeFDQ55bqoR9bxtYQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CfL5cxIzvunWTkcUQbevYPKtc1a6oS+SSPG9PBYu+vo=; b=TEzxrLMC1kC8YcXohDk/6/yR58i8+p+z3mY5WhX31G/6uzOzQxLffy8D4TRheSQVgc Xomb/tnL9uzMxpLp1pK8enotY9YuhaW00+Xzyz1oZk9v1hIS7iPW8JktKtFwQajeDjPq n0yLuVBQkTzlU4GSClOaZay16cNeuh4Wv7VZFG1GwCUJRCMeZexA6rrq5GoWms02a+sk 4uhKAxwBtF3msG/RJFFOvouyXkmj94QGNdhI6imSC+qyeOTYB2mAh9lzcReixXcY1e7H InugTmsuGzGGQyB6n3J1+4S27vd5XYeF88n9qQuvL+bNgI/njYnw9BXnD/Dj7pDpZYyO D/Cw== X-Gm-Message-State: AJaThX4NXtmo0LZWVfNWjy0fWn88gd1tyHLdjOv2oxlPsXzxFrAiAWP2 gefTObj8GlbwKfPK5DvqoJNdCw== X-Google-Smtp-Source: AGs4zMYpCmyshbCKstyIu/Goe1NwuCOfZtUuabQQsEv2mntJKU6sME1Rygs7EKW7LIZ5kchBa9Q1pA== X-Received: by 10.223.191.17 with SMTP id p17mr5290355wrh.184.1510528532482; Sun, 12 Nov 2017 15:15:32 -0800 (PST) Received: from wildmoose.dk ([2a01:488:66:1000:57e6:57d1:0:1]) by smtp.gmail.com with ESMTPSA id o70sm48012169wrb.62.2017.11.12.15.15.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 15:15:32 -0800 (PST) From: Rasmus Villemoes To: "David S. Miller" Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/7] net: core: dev_get_valid_name is now the same as dev_alloc_name_ns Date: Mon, 13 Nov 2017 00:15:10 +0100 Message-Id: <20171112231511.4666-8-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171112231511.4666-1-linux@rasmusvillemoes.dk> References: <20171112231511.4666-1-linux@rasmusvillemoes.dk> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If name contains a %, it's easy to see that this patch doesn't change anything (other than eliminate the duplicate dev_valid_name call). Otherwise, we'll now just spend a little time in snprintf() copying name to the stack buffer allocated in dev_alloc_name_ns, and do the __dev_get_by_name using that buffer rather than name. Signed-off-by: Rasmus Villemoes --- net/core/dev.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 7c08b4ca7b76..e29eea26f9c1 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1144,19 +1144,7 @@ EXPORT_SYMBOL(dev_alloc_name); int dev_get_valid_name(struct net *net, struct net_device *dev, const char *name) { - BUG_ON(!net); - - if (!dev_valid_name(name)) - return -EINVAL; - - if (strchr(name, '%')) - return dev_alloc_name_ns(net, dev, name); - else if (__dev_get_by_name(net, name)) - return -EEXIST; - else if (dev->name != name) - strlcpy(dev->name, name, IFNAMSIZ); - - return 0; + return dev_alloc_name_ns(net, dev, name); } EXPORT_SYMBOL(dev_get_valid_name);