Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp3275708imc; Wed, 13 Mar 2019 13:28:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqy47Okvu7ZmJ7VSmIVUx4QQfSuzWWHP4BN0t0Ya5OGkYjSeBFCB4EPZIH/+DDXYsq9SLR5G X-Received: by 2002:a17:902:a40d:: with SMTP id p13mr46166039plq.144.1552508894612; Wed, 13 Mar 2019 13:28:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552508894; cv=none; d=google.com; s=arc-20160816; b=HgGFCa0MzW9Oqm4pCd0zqMIeQuSV4rNFTUrT7TBtUGGzzTt3vTRk4PHA07fv65WExZ S2qpbl3qKH/TUfiiMAtaen7HpY/o0Knh8niCsf/GjXCfybqC/91N7XQe2ihd3POkQQhI AWpmbtWzsycmyjygsnmKFZBQkEGjcxYaP7LoQIbi1rj3ok1rjOqJ6MBSRkhUbR7uqzpM VERJVDvX+jx8Tx39Nbv7uhW5ntEVAIo+rOg0O+e9kjtsas6FzIg6OZcfXSYAaK5EP9wd BJ1ymXJc4k65jM0PBL1gj2mP3OGTVoETK95UQgfqF24ycgQ/N2uJALrjawAV+tAUPNci 8tdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=EHLai3k2Wn6n/KDvlbsgby/PgsqnNVvXCgww5aPDvj0=; b=XGWnLg94rkn50lruU7zSg0x1XZmeKSFdrgM7tEpbbfH8gARvjvchNjMgZdUQUMKAxV gUXzWsuI6p5PO5Jf8YiYNozi7B4kGBMjoLrYCoMCfa7yXJV1JE9iJ0FTBoeZ7pm/T7v2 hDGoWq9O5+rPpsndmsdgT3djoA8z72Fa6kbMeeZ5KQ0etX5t2OjCpJPGymq2dx00oyO3 OyFNwCqpU8+yYu1acup4AW9x3Y0e6OoDlGn0qZssBo6q5vGljaQls9L2NPn6HJvByb/t g8pBuSpHQzLPawCruz/8pOIRCaAMzVMqMZUmyodCp/lQsGhvoJAcWbUHlz/d2qGYLeHp Tr8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=dmG4jldJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w8si6030650pll.164.2019.03.13.13.27.58; Wed, 13 Mar 2019 13:28:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=dmG4jldJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727311AbfCMU0X (ORCPT + 99 others); Wed, 13 Mar 2019 16:26:23 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:39435 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726846AbfCMU0V (ORCPT ); Wed, 13 Mar 2019 16:26:21 -0400 Received: by mail-ed1-f68.google.com with SMTP id p27so2699914edc.6 for ; Wed, 13 Mar 2019 13:26:20 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=EHLai3k2Wn6n/KDvlbsgby/PgsqnNVvXCgww5aPDvj0=; b=dmG4jldJdQuYJWQFCzTm3r5HvcKJLPai9ojEE39RQyMAsx6dkAutk4TsYTLI4JJrqp Y87BMDeY/U8hv8cW0sYwmwSF14kUBhfKRKgZtBH406+6gkp9WbpF7oztWaSSNqpnEwdD kTSCuu+BtmFPsZx0kzrolqIceaLxxzx6E+ra0= 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:mime-version:content-transfer-encoding; bh=EHLai3k2Wn6n/KDvlbsgby/PgsqnNVvXCgww5aPDvj0=; b=MUrZWYazHF7f+Dk+S6ZM/qMAFR+LjgoLRSg8QAMWYVs0Wx8ZB3ie/IuoQDzt/ZQUX4 PSF932dDHwVMmwcHyBwDIGOOmJGCbXznFzh8NZoickkPIoUWjrayxRcrDJjl/wWdunPa cHd++IvVLaCZKdNvmFJE5cMuQdDUNZyPknBewU9daln9VDcAIxV8qX0sbSylmOdtuvaB A0obmiU1VhRyGQoOxr2PId9RCNGf8428df7LFby+rbfSpre4F/cu9uAPfkG5pbppjeu9 O/0WsxkN/TJUpAucc9w4SpW0BXkp1gAL8cp7dg4RlUJGhVuO6xXyPuRG1ZTXbb7X2VLK atIA== X-Gm-Message-State: APjAAAXfL1vUOw7GcgY+fU9uBAzIhUgtCVu4lv62WYaLpIU38xmBPq6T dhbAi38RlSQn+sRlAdMaQKesGA== X-Received: by 2002:a50:9938:: with SMTP id k53mr8952505edb.134.1552508779641; Wed, 13 Mar 2019 13:26:19 -0700 (PDT) Received: from prevas-ravi.prevas.se (ip-5-186-119-202.cgn.fibianet.dk. [5.186.119.202]) by smtp.gmail.com with ESMTPSA id m32sm940170edc.17.2019.03.13.13.26.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Mar 2019 13:26:19 -0700 (PDT) From: Rasmus Villemoes To: Pavel Machek , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Jacek Anaszewski Cc: LKML , Rasmus Villemoes , linux-leds@vger.kernel.org Subject: [PATCH 1/4] leds: netdev trigger: use memcpy in device_name_store Date: Wed, 13 Mar 2019 21:26:12 +0100 Message-Id: <20190313202615.22883-2-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190313202615.22883-1-linux@rasmusvillemoes.dk> References: <20190311144227.GA4404@amd> <20190313202615.22883-1-linux@rasmusvillemoes.dk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If userspace doesn't end the input with a newline (which can easily happen if the write happens from a C program that does write(fd, iface, strlen(iface))), we may end up including garbage from a previous, longer value in the device_name. For example # cat device_name # printf 'eth12' > device_name # cat device_name eth12 # printf 'eth3' > device_name # cat device_name eth32 I highly doubt anybody is relying on this behaviour, so switch to simply copying the bytes (we've already checked that size is < IFNAMSIZ) and unconditionally zero-terminate it; of course, we also still have to strip a trailing newline. This is also preparation for future patches. Signed-off-by: Rasmus Villemoes --- drivers/leds/trigger/ledtrig-netdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c index 3dd3ed46d473..ddc2b90ad7ec 100644 --- a/drivers/leds/trigger/ledtrig-netdev.c +++ b/drivers/leds/trigger/ledtrig-netdev.c @@ -122,7 +122,8 @@ static ssize_t device_name_store(struct device *dev, trigger_data->net_dev = NULL; } - strncpy(trigger_data->device_name, buf, size); + memcpy(trigger_data->device_name, buf, size); + trigger_data->device_name[size] = '\0'; if (size > 0 && trigger_data->device_name[size - 1] == '\n') trigger_data->device_name[size - 1] = 0; -- 2.20.1