Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3277448pxj; Tue, 11 May 2021 00:20:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyyNB/xizwq4FWvVc5f13jAdACZHsqo7rcUbNkMFNEaRfnRSSsHLiqf1C8JBsBd/tBXgLa5 X-Received: by 2002:a17:906:fa19:: with SMTP id lo25mr29501889ejb.394.1620717618955; Tue, 11 May 2021 00:20:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620717618; cv=none; d=google.com; s=arc-20160816; b=tTwGiu5wPcPy0wksmTwfqqb1fw68iv0dWr/JxO/EkyinTJ3yw560hoCfEnY22IhLYe DKJtQFWWawZNipQfom1cusIRP7ckJ5lBl9heK8KmWohYV3MUYGgec0/cAPW++inePqLf zS7PkNnpdk/h4AubAig6KzHRXHmngPUFJZRHu8bMY1ENn5HmtoRBvO3p4PAJbtp00n+V Oua1BZSBzMePB5eS89Q92s94PMxFlxf+B50bS1oaXtqCnQ26t2inKwvxHjk922Bt/KdM Tx1mVPPY7QaYOZLZ2q5vCItPKVtdBRHmFQLv/Lg+add8v9LH839CFcbLR9bEBIIb9xO3 2pow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=VO8Xbu9ScJAbJ7Od8laCaCfPDF3nKOJ8zdnOTsiE1HM=; b=C9uD2GMF06xJac5PAwXjdAay3tpVXYCLRXrK7mrxaSHB+8vJnUJP7U7dBtTN20jBag 8xG1cTl6TCY2gMSRYfEBqqhWfYFMq/j3DMIfiR782Nc0UdwNgs1DU6CACeTm3YiHROhY Du84Sp+xGCv/MNIUf7iqA9lpiyGRCyDjZY6Evgu6NKXsd+oUmv2ImqkDgqt/1DOG1C/T zoVKcCKvhg+YjeghG1/NLQKP00OcswW8G560irA1LeGj1xfK1cJ6EUJYRYBA/+jh9ogW MZ2XG7Ksco2XJk2xwX/L2532LCoompIdMWheJoujrnaIWTPhbJGBYdRwcvq1Ep0cl3po myhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=mwSSnp3n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l13si14361501edv.124.2021.05.11.00.19.55; Tue, 11 May 2021 00:20:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=mwSSnp3n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230424AbhEKHRz (ORCPT + 99 others); Tue, 11 May 2021 03:17:55 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:50382 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229945AbhEKHRz (ORCPT ); Tue, 11 May 2021 03:17:55 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 14B7A2IU150254; Tue, 11 May 2021 07:16:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type; s=corp-2020-01-29; bh=VO8Xbu9ScJAbJ7Od8laCaCfPDF3nKOJ8zdnOTsiE1HM=; b=mwSSnp3n7fmvaj9xVfsjYVznyvaa922kSqf144HT6Rz1avEAirHvZ6i+pul14MYvLYxd jLjPCx3M+MTrvWdicTv3JcsTQQXdv+YxyYRQ6iduTuq3+U9X1bBuTqTN8L3G0a5dQmNZ npj5UUJU0SOzgX7w+sC+QK8Bpx1/yhPadvq+BGY0yIXVc7UPf1qntNhWbWQ3vO6f/lnR ZXVL7a5hTUL5YKuRz0cZcNNEvnn2hxg02zYGOH2Jh4mjQCNMHn9hDv2gWbijGx8RsAUy 4I1y++eMrS09igVQqAyuG+ZcKs+752ju033joZLSTUP+5F9yT2wZgE/HINxaNju1xFi8 WQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 38e285cw6r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 May 2021 07:16:32 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 14B79nxf051531; Tue, 11 May 2021 07:16:31 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3030.oracle.com with ESMTP id 38e5pwqr9h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 May 2021 07:16:31 +0000 Received: from aserp3030.oracle.com (aserp3030.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 14B7GUE1078023; Tue, 11 May 2021 07:16:31 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3030.oracle.com with ESMTP id 38e5pwqr95-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 May 2021 07:16:30 +0000 Received: from aserp3030.oracle.com (aserp3030.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 14B7GUGu077990; Tue, 11 May 2021 07:16:30 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 38e5pwqr8w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 May 2021 07:16:30 +0000 Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 14B7GRpq029227; Tue, 11 May 2021 07:16:27 GMT Received: from mwanda (/102.36.221.92) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 11 May 2021 00:16:27 -0700 Date: Tue, 11 May 2021 10:16:20 +0300 From: Dan Carpenter To: Mark Fasheh Cc: Joel Becker , Joseph Qi , Andrew Morton , Gang He , ocfs2-devel@oss.oracle.com, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [PATCH] ocfs2: fix snprintf() checking Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailer: git-send-email haha only kidding X-Proofpoint-GUID: H0UdjeXtwe_wFiykoQAC1h6yv28hXIF5 X-Proofpoint-ORIG-GUID: H0UdjeXtwe_wFiykoQAC1h6yv28hXIF5 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9980 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 clxscore=1011 impostorscore=0 phishscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2105110054 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The snprintf() function returns the number of bytes which would have been printed if the buffer was large enough. In other words it can return ">= remain" but this code assumes it returns "== remain". The run time impact of this bug is not very severe. The next iteration through the loop would trigger a WARN() when we pass a negative limit to snprintf(). We would then return success instead of -E2BIG. The kernel implementation of snprintf() will never return negatives so there is no need to check and I have deleted that dead code. Fixes: a860f6eb4c6a ("ocfs2: sysfile interfaces for online file check") Signed-off-by: Dan Carpenter --- fs/ocfs2/filecheck.c | 6 +----- fs/ocfs2/stackglue.c | 8 ++------ 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/fs/ocfs2/filecheck.c b/fs/ocfs2/filecheck.c index 90b8d300c1ee..de56e6231af8 100644 --- a/fs/ocfs2/filecheck.c +++ b/fs/ocfs2/filecheck.c @@ -326,11 +326,7 @@ static ssize_t ocfs2_filecheck_attr_show(struct kobject *kobj, ret = snprintf(buf + total, remain, "%lu\t\t%u\t%s\n", p->fe_ino, p->fe_done, ocfs2_filecheck_error(p->fe_status)); - if (ret < 0) { - total = ret; - break; - } - if (ret == remain) { + if (ret >= remain) { /* snprintf() didn't fit */ total = -E2BIG; break; diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c index d50e8b8dfea4..16f1bfc407f2 100644 --- a/fs/ocfs2/stackglue.c +++ b/fs/ocfs2/stackglue.c @@ -500,11 +500,7 @@ static ssize_t ocfs2_loaded_cluster_plugins_show(struct kobject *kobj, list_for_each_entry(p, &ocfs2_stack_list, sp_list) { ret = snprintf(buf, remain, "%s\n", p->sp_name); - if (ret < 0) { - total = ret; - break; - } - if (ret == remain) { + if (ret >= remain) { /* snprintf() didn't fit */ total = -E2BIG; break; @@ -531,7 +527,7 @@ static ssize_t ocfs2_active_cluster_plugin_show(struct kobject *kobj, if (active_stack) { ret = snprintf(buf, PAGE_SIZE, "%s\n", active_stack->sp_name); - if (ret == PAGE_SIZE) + if (ret >= PAGE_SIZE) ret = -E2BIG; } spin_unlock(&ocfs2_stack_lock); -- 2.30.2