From patchwork Fri Jul 14 12:07:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 107791 Delivered-To: patch@linaro.org Received: by 10.182.45.195 with SMTP id p3csp891413obm; Fri, 14 Jul 2017 05:12:28 -0700 (PDT) X-Received: by 10.84.231.140 with SMTP id g12mr15874385plk.256.1500034348000; Fri, 14 Jul 2017 05:12:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1500034347; cv=none; d=google.com; s=arc-20160816; b=rSVLlUSJr+32v3oqLucDwZHcl/+1HkAGkYXtKDywHvchLCZgbanD0gQ4XrGUdAwyQF lXiPUIAr7kpO6G8VVetzh3zn+mfCd9h0SIR9YA2UEYbG9Ko4k+1vhxyhj6V+ApEUA6+P w1+mpvdUThMSDi3Lsn/z7mtJV9hGB/3fy/1AA4LpJQ8bzrGQq/9N3ICZW/I/MN8aoh64 9LKLQbWPapMJqhZcFfPmlTX6iQwuhMkGxx9GZCyXaK4gzCcyVK3GdExVwYR6WHXRhaS/ PB4YB6oUcVro2l6UJtXx63D5zVPHo6mkD1K7abeIwDteEuxmNamUgdZYWaJ4b7gweL8t 95dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=jAn/Y1wFk+QoAP8Y3UiLmfTqSNU7yEYraCHwS+2jfOM=; b=Zo5+DR3HInfo36dj4Ale4tgFqzYxDEw9o5OViLOPKcuM/W9P9n1n+2C+t3sgpcvGny ZeXrjja2LSdsF8YLlULcr6gCY7RT78WaV1hbFqv6old2fC96liHZfDLfZRf2pZ7W/3pJ I0hHMdVQJ+cue7WtRxQLgI9Q1+o0ytVC+eSQvsHaMyz6VUzhdRztf87d18TwF1Ur56TR 1J2XgUWbglxA4JRcQN3tLeNt9hlG/MIGLdwzkaEz1jlHDW+D9j2yMExfmOoLF6VkZ9W+ IyTD5u3DLgKnu55i07PAS/cxp2wr4y+ooKL8J9nS0wOZpH88eaMTFxKlOP8T1O3HYBns BaYQ== ARC-Authentication-Results: i=1; mx.google.com; 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 65si6730523plb.307.2017.07.14.05.12.27; Fri, 14 Jul 2017 05:12:27 -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; 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 S1754245AbdGNMMU (ORCPT + 25 others); Fri, 14 Jul 2017 08:12:20 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:50352 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753704AbdGNMMP (ORCPT ); Fri, 14 Jul 2017 08:12:15 -0400 Received: from wuerfel.lan ([5.56.224.194]) by mrelayeu.kundenserver.de (mreue104 [212.227.15.145]) with ESMTPA (Nemesis) id 0MC1A0-1dN9k31JSK-008sgp; Fri, 14 Jul 2017 14:10:43 +0200 From: Arnd Bergmann To: linux-kernel@vger.kernel.org, Derek Chickles , Satanand Burla , Felix Manlunas , Raghu Vatsavayi Cc: Greg Kroah-Hartman , Linus Torvalds , Guenter Roeck , akpm@linux-foundation.org, netdev@vger.kernel.org, "David S . Miller" , "James E . J . Bottomley" , "Martin K . Petersen" , linux-scsi@vger.kernel.org, x86@kernel.org, Arnd Bergmann , Weilin Chang , Prasad Kanneganti Subject: [PATCH 13/22] liquidio: fix possible eeprom format string overflow Date: Fri, 14 Jul 2017 14:07:05 +0200 Message-Id: <20170714120720.906842-14-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170714120720.906842-1-arnd@arndb.de> References: <20170714120720.906842-1-arnd@arndb.de> X-Provags-ID: V03:K0:EX/h095j41LioVeHzcrbQ43WG5O+ZZgW2fLW/9CKuUMFrEenNmK 10yLac02skkRgJa9LITZ+FR6pj2N4RZRoIvHruGMmonzCVBUNaoOcwVUfaEMa96TzVdHJWt AOBND69iH3iJ9EcSTzp1X3q1A9BWH6SMHAiobQc7jNEklXPYl2Ogx89btviV7FMXZFznxI4 ez3xk/HHpsp2Ug6K5LxNw== X-UI-Out-Filterresults: notjunk:1; V01:K0:5b/hsNv8B50=:yUq/y6nWrX9KyU4v05iiHB E58fCLOl8SNOh3xhKfa1I+N+gqk9yrGB8C/BlJbH2CV7nbUsdCke4cTWVTbTmzSEo5b352dx1 5H1aotSu2lqnjNoTfqN38JsABi9x1taXMMJ0ROX66utK2158JHSK87z6RTNn4sTgn1oZWWFx8 BeYbMEqJIP8PjkPIlJK1bdl1//VAs9FRxZFNrbLc85olCK9udLJOYW15cFj+rY33HYIOge5Uq xeNyfar23YfZMBkhbHQl0Q3BOztedKg/ienxpbP0VIq3Or7O6Qo8ijHL92IHVaJP1rjULpDyg 3+it/uBAYJ7/azBrg1shbmYeMin8g5pBrkVTtqi+HN4mlMkFrYlUPdMuR9ZT75T5mLEP5boNC MnbhJS5tOQ6Bj4DPiZRDQtt+ZXP/xhJdXlIO565cdUjvlT38lYF9a33SyBYBTTiS8Bgibot+b cYUn22tGP54ajEPoCbOdXfM60MeKpVZIkbTM8tOg+mc9wPAeV6C66xP/qMryT8+J/GgH9U9kk EN9IVR7O2C69wBibF54672PDlPstWMO70fECWiVtI93wp4hO5apVtByz9T08cWRw/5O1ekSVw gy7A++0vVYe5fhEZh9LW+5zzSUZfbIblzOQX/DZEogqUmBkvWS7uTHD/1iIXBnRUSVnhWUVjZ X77ryFC0w8Q6NdLlECQBkmDTg5wpHZ8QwoMfH7uYiuKzXF2ab8M2d/RfGi9goJchIyahpZUwD 9u6CQ7LhbYm6FwQdAO29CkjJG8QRAH4sqjNMIw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org gcc reports that the temporary buffer for computing the string length may be too small here: drivers/net/ethernet/cavium/liquidio/lio_ethtool.c: In function 'lio_get_eeprom_len': /drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:21: error: 'sprintf' may write a terminating nul past the end of the destination [-Werror=format-overflow=] len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:345:6: note: 'sprintf' output between 35 and 167 bytes into a destination of size 128 len = sprintf(buf, "boardname:%s serialnum:%s maj:%lld min:%lld\n", This extends it to 192 bytes, which is certainly enough. As far as I could tell, there are no other constraints that require a specific maximum size. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.9.0 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c index 28ecda3d3404..ebd353bc78ff 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c @@ -335,7 +335,7 @@ lio_ethtool_get_channels(struct net_device *dev, static int lio_get_eeprom_len(struct net_device *netdev) { - u8 buf[128]; + u8 buf[192]; struct lio *lio = GET_LIO(netdev); struct octeon_device *oct_dev = lio->oct_dev; struct octeon_board_info *board_info;