Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1009317yba; Thu, 4 Apr 2019 02:19:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqzaJ3AbwobXsDleUERMrfn7Egfo8RryJy+r0SywT2WsReHVFxHHrcMUJ3uFJAvoI2oZD57P X-Received: by 2002:a17:902:ba88:: with SMTP id k8mr5312094pls.268.1554369584888; Thu, 04 Apr 2019 02:19:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554369584; cv=none; d=google.com; s=arc-20160816; b=eJFPzfMGTXqHtjI1W2T5UwTD7SXwLEKnSpJ4md2A7p5Pt+A/z6L6+0gCbCyz5hX50o 1nKshxPyHNIw/IuL5L6jd9R8KTxjmpGujbSepXS9/Fjd7/YTNwFQt6/USJ3xqxj4ISgq XmWhAZgHi2u5QTRI4u0o8y4xnGWIbEDh1Ai1eaKct9LR4ovUC5/1TfoivCg+lnsY4CjY eSPJ8oRiWACzQk36lsWydit+gxFu9uvalAGJobO1kIIYxCUwsSD9c8dlRg23Qfi0RjBn POdv7Sm7TGA56fGCLjSva6flhBhXnFv1E0F2SClKjK6+EuLdTxApBOb5oeAfzuRI2DNU nT5g== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3I9UXpQaEJrx1bvq3usKNn190sUUkGfbPTeEm8Tob3E=; b=bYy2qe1R44GEDiZgj1BVos1SGfENN6kRxTAo8wlc6cKEBu1fujRQj23ouzdKRzSm1Q C8Wpo1dK08PL47mbfNLIvCnHXK095enEMdR4fn2NuAmXD1ujNPu54kM5gkw2+q5brtdb B9FlaQyirO+Byu7rqs0Ix+kAiePbNQoMcefeihNGQdzSwMNm3tzk88nfi8MhYF3q4+O7 +G4zaTpqo82pRcf+qnpgjbviB4yRJ62Yi6fsxcUoRVHYb3dQ573hJmvrpnqIACbaMi30 uhndeUNW+6ZYvIrpkYVjiFV57UZaaAXtOumqufJpk4tvP8lfbMoKhQsJ2ifvH8sOjBfH mJ/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=gZP528rn; 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 z73si15986298pgd.345.2019.04.04.02.19.29; Thu, 04 Apr 2019 02:19:44 -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=@kernel.org header.s=default header.b=gZP528rn; 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 S2388251AbfDDJSw (ORCPT + 99 others); Thu, 4 Apr 2019 05:18:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:60846 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387594AbfDDJSj (ORCPT ); Thu, 4 Apr 2019 05:18:39 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0F4E220652; Thu, 4 Apr 2019 09:18:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554369518; bh=HsqZ9DTk/2OYjcIBv7w6lQkkX+QQC/KsdyaPHFp3Us8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gZP528rnWa387QL8ONxiaJ/CmFOOaRqZt/TJ/VrUahIZt9xN55B8OflgLEBAsTzPK P7q5eyN7LSR8j5De7yaO/b34cOdubgPmtGVef1PAJhY9RvizFOeHBzuthiQAwY0W6V rjgsmOYuC1SdTM7Du0a5B1CeqfwEhqvCC9ALq80E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Coly Li , Jens Axboe , Sasha Levin Subject: [PATCH 5.0 246/246] bcache: fix potential div-zero error of writeback_rate_p_term_inverse Date: Thu, 4 Apr 2019 10:49:06 +0200 Message-Id: <20190404084627.919536818@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084619.236418459@linuxfoundation.org> References: <20190404084619.236418459@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 5b5fd3c94eef69dcfaa8648198e54c92e5687d6d ] Current code already uses d_strtoul_nonzero() to convert input string to an unsigned integer, to make sure writeback_rate_p_term_inverse won't be zero value. But overflow may happen when converting input string to an unsigned integer value by d_strtoul_nonzero(), then dc->writeback_rate_p_term_inverse can still be set to 0 even if the sysfs file input value is not zero, e.g. 4294967296 (a.k.a UINT_MAX+1). If dc->writeback_rate_p_term_inverse is set to 0, it might cause a dev-zero error in following code from __update_writeback_rate(), int64_t proportional_scaled = div_s64(error, dc->writeback_rate_p_term_inverse); This patch replaces d_strtoul_nonzero() by sysfs_strtoul_clamp() and limit the value range in [1, UINT_MAX]. Then the unsigned integer overflow and dev-zero error can be avoided. Signed-off-by: Coly Li Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- drivers/md/bcache/sysfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c index 28e0d5a5e25b..e5daf91310f6 100644 --- a/drivers/md/bcache/sysfs.c +++ b/drivers/md/bcache/sysfs.c @@ -290,7 +290,9 @@ STORE(__cached_dev) sysfs_strtoul_clamp(writeback_rate_i_term_inverse, dc->writeback_rate_i_term_inverse, 1, UINT_MAX); - d_strtoul_nonzero(writeback_rate_p_term_inverse); + sysfs_strtoul_clamp(writeback_rate_p_term_inverse, + dc->writeback_rate_p_term_inverse, + 1, UINT_MAX); d_strtoul_nonzero(writeback_rate_minimum); sysfs_strtoul_clamp(io_error_limit, dc->error_limit, 0, INT_MAX); -- 2.19.1