Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp360039ybb; Sat, 28 Mar 2020 00:31:33 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvWIcNSANCo+isJ2yGNG0j6k4MIhF+eqdCSDcJvbtkHIYGwv1lVvzPQzje3J43Ya/ggpEk3 X-Received: by 2002:a9d:798f:: with SMTP id h15mr1889628otm.284.1585380693728; Sat, 28 Mar 2020 00:31:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585380693; cv=none; d=google.com; s=arc-20160816; b=h7T68+tEjqpLSLOvDDQ/7gTyN0SDAfrmNcUR2YE/ctAZE8Snq6xblFUWOhkb0i21rW iIBu641Fz+pgK0M+2U4sk2mhL8ns9Tfe5pDn1pGpbcIHXFLfDGGjoBmMIwrBUEVYeyjL FCkWzxhOk+PGh3ysntiXPqGBeTGaW3bYMQ/ZYowVUEbml6DTlDXp0Sj2CLWhmLCCSM4j ITXMmVaaA7rASdABW8HeYHAx3MyyFWu3Tyq85jJTco1m+zMqJwHPbupJzF4hd9S/JY7W rh2EGo6ttmPh3krE2YyYIX1QTiXUf36r4GWGThOXmEjxZxE3Irwj1qS+qfOul6QR9DBR 8VgQ== 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 :message-id:date:subject:cc:to:from; bh=TG1Yc2+jIt2vFXV4N6fNVK8v4DdagCicrAdBxgw9Dl0=; b=fbR/hiD+B0IDqWRGAZiTsBgVk0l50L1ZEJBsGpHTQSRWwySV0I5K2PG57r1ejOeIDR vZ3BCRL0MrhIxL/LONTMpRw+tMiATQwD0J/iT/twbrLtmxBw1mPf0lpcJdOsaJF3Ls4F DsmrHXHAhnaLKU1n4F9Ynz1b8D2Kklrznf43j0YhaxGWKC3kEtIB0Keg+Mw2FqR0P32E xcf3tbXw1oaoqKJsf88f5I2EjaR0y+H6vj1T6OOndaq8Haz5SZe4HOQi/t8EnPaGMv/X q4C1M4kbH3nZsSDkrit7LxVElZrYvIysaRZdtutfMZVhVggKVhGKIVqaoO9ggY/PpsAR /rzA== 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 c21si3819187oto.169.2020.03.28.00.31.20; Sat, 28 Mar 2020 00:31:33 -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 S1726195AbgC1Has (ORCPT + 99 others); Sat, 28 Mar 2020 03:30:48 -0400 Received: from smtp02.smtpout.orange.fr ([80.12.242.124]:34055 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725865AbgC1Has (ORCPT ); Sat, 28 Mar 2020 03:30:48 -0400 Received: from localhost.localdomain ([90.126.162.40]) by mwinf5d37 with ME id KjWj2200B0scBcy03jWj1E; Sat, 28 Mar 2020 08:30:46 +0100 X-ME-Helo: localhost.localdomain X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sat, 28 Mar 2020 08:30:46 +0100 X-ME-IP: 90.126.162.40 From: Christophe JAILLET To: selvin.xavier@broadcom.com, devesh.sharma@broadcom.com, dledford@redhat.com, jgg@ziepe.ca, leon@kernel.org, colin.king@canonical.com, roland@purestorage.com Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH] RDMA/ocrdma: Fix an off-by-one issue in 'ocrdma_add_stat' Date: Sat, 28 Mar 2020 08:30:40 +0100 Message-Id: <20200328073040.24429-1-christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.20.1 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 There is an off-by-one issue when checking if there is enough space in the output buffer, because we must keep some place for a final '\0'. While at it: - Use 'scnprintf' instead of 'snprintf' in order to avoid a superfluous 'strlen' - avoid some useless initializations - avoida hard coded buffer size that can be computed at built time. Fixes: a51f06e1679e ("RDMA/ocrdma: Query controller information") Signed-off-by: Christophe JAILLET --- The '\0' comes from memset(..., 0, ...) in all callers. This could be also avoided if needed. --- drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c index 5f831e3bdbad..614a449e6b87 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c @@ -49,13 +49,12 @@ static struct dentry *ocrdma_dbgfs_dir; static int ocrdma_add_stat(char *start, char *pcur, char *name, u64 count) { - char buff[128] = {0}; - int cpy_len = 0; + char buff[128]; + int cpy_len; - snprintf(buff, 128, "%s: %llu\n", name, count); - cpy_len = strlen(buff); + cpy_len = scnprintf(buff, sizeof(buff), "%s: %llu\n", name, count); - if (pcur + cpy_len > start + OCRDMA_MAX_DBGFS_MEM) { + if (pcur + cpy_len >= start + OCRDMA_MAX_DBGFS_MEM) { pr_err("%s: No space in stats buff\n", __func__); return 0; } -- 2.20.1