Received: by 10.213.65.68 with SMTP id h4csp3558703imn; Tue, 10 Apr 2018 00:29:29 -0700 (PDT) X-Google-Smtp-Source: AIpwx48T8Ue2LiDwOetM2rGBfIUD7pdyWLNtk0bHurVsbPs+Bh+MsFc+uc+f24baImC2Fnd2x3FT X-Received: by 10.98.238.3 with SMTP id e3mr1815033pfi.88.1523345369067; Tue, 10 Apr 2018 00:29:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523345369; cv=none; d=google.com; s=arc-20160816; b=BatzYSo2bY/KlR3o+u7gIgDENnh+mF6ZS2E4GwiyuckPdE9K+/EhCJ9xrD4oyhHW1G 30JOiKHuw0LORH+yPnXctuAqslE9mw2OUSZJ4T4VR6VFnIxdKUQ6xXB4tFDAyqtR4gDp nEU92Cgi75nbUqqwLUzwOGYpr17f0fb0kM7eEXapzUnx6zmyK1s5jho9Hr3yAlA2KPP3 yEYCcE3DVvY1d/0whPimToYBH8g7tbDXQWtYYmxmjNGA+A+Km9Y1013HbNFESFnaICAN Zt9URvQHMKdrGAKmN3+y0NoBRo/vdoGJJXVTgjaSXMpQUNGPDBlN7OhMxnn5cWkAUkf1 yufQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:content-transfer-encoding:mime-version :message-id:date:subject:cc:from:arc-authentication-results; bh=7Q7XAFFrch/0Noz6754GRoR4eYn6I9F47EEPAr/uquM=; b=xjzjCwy+SWRkZ0WCUL0PWJjwiOMhT0o2kwHr3a5v9yg4jPsdiVNK/NQ7DmX8oZudBj VvfuQXAC29lIPunHxNPJaLW/lcIQMvnsMUiG9ulvo7zr+lHBzRmwzc2cMFxmpbR4YAFy 4LvMAxM2pont1+wRVPP0H4qviXUqh7XiClWsCUlZFImN9ZyUImBV+VJG/BCwOr24yA6B 4KP/UFeslHzSk6Qw9PD4c9FYkxISXS5X1ujf7RjZc5x76xrkTOSRSZ0Kwx+E9/7g53KH SZI59hqBn/cYjUeNKarfWdc4WJzWTSX6HjadkJn9LB8KnksAXbj6oYU7ozIHQ113lU3E 6RxA== 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 l75si1633390pfj.375.2018.04.10.00.28.51; Tue, 10 Apr 2018 00:29:29 -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 S1752234AbeDJH0G (ORCPT + 99 others); Tue, 10 Apr 2018 03:26:06 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:40983 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752184AbeDJH0C (ORCPT ); Tue, 10 Apr 2018 03:26:02 -0400 Received: by mail-pf0-f193.google.com with SMTP id a2so7540531pff.8; Tue, 10 Apr 2018 00:26:02 -0700 (PDT) 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:mime-version :content-transfer-encoding; bh=7Q7XAFFrch/0Noz6754GRoR4eYn6I9F47EEPAr/uquM=; b=lfttjOKjm1NPDHye1H1pGxHF15N/sv7TwU1PRNAvvF3FFeu6v85XGk3CCWd+/7xjsw EYsAF923YnUEwPs+GQ33JqO0v95nlybk6gVeciZEKxbfrAeCbC5y75m+hpW81nT2UTK1 UY5/Vy1SGQgH/4kWpxUxqC1jrnmzx6N8kgX1Vmi72xjbDM67ED/jGwJxtFDx8YhSh0at OX7zxMgwo7YyXSFIBEsaKv/TQh49jInjlAaQJTm7dWQIqQS6PtW8XG3MkCn/UkSggdXj Zu06PvN6Q0iacjO1nioWvHAZP2UqOYih51qHg1HsEG6O/9iC8EJz47SxIsyt/MWm0Q17 H/zQ== X-Gm-Message-State: ALQs6tC3vATMTkTLlHY6vE9Db0tu0rNDeEZD0gW15X54mwI7EtR2BBxB rBbrJSyM4+5Yj8QOVEti8pYxBMZ8JbI= X-Received: by 10.98.34.69 with SMTP id i66mr1823967pfi.140.1523345161709; Tue, 10 Apr 2018 00:26:01 -0700 (PDT) Received: from szlin-TW ([122.146.92.136]) by smtp.gmail.com with ESMTPSA id o66sm4110882pfg.90.2018.04.10.00.26.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 10 Apr 2018 00:26:00 -0700 (PDT) Received: from root by szlin-TW with local (Exim 4.90_1) (envelope-from ) id 1f5nfD-0001r4-RY; Tue, 10 Apr 2018 15:25:59 +0800 From: =?UTF-8?q?SZ=20Lin=20=28=E6=9E=97=E4=B8=8A=E6=99=BA=29?= Cc: =?UTF-8?q?SZ=20Lin=20=28=E6=9E=97=E4=B8=8A=E6=99=BA=29?= , Taiyi Wu , Alessandro Zummo , Alexandre Belloni , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RESEND PATCH] rtc: tps65910: add bounds checking Date: Tue, 10 Apr 2018 15:24:17 +0800 Message-Id: <20180410072417.7078-1-sz.lin@moxa.com> X-Mailer: git-send-email 2.17.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since tm->tm_year is the offset relative to 1900, it needs to check for positive value to avoid overflow in YEARS_REG register. The system will hang at the following stage on the next boot when overflow has occurred. [ 2.221192] systemd[1]: Time has been changed This patch fixes the above hanging issue by adding bounds checking. Signed-off-by: Taiyi Wu Signed-off-by: SZ Lin (林上智) --- drivers/rtc/rtc-tps65910.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/rtc/rtc-tps65910.c b/drivers/rtc/rtc-tps65910.c index d0244d7979fc..6be9f7bb0f1b 100644 --- a/drivers/rtc/rtc-tps65910.c +++ b/drivers/rtc/rtc-tps65910.c @@ -105,6 +105,12 @@ static int tps65910_rtc_set_time(struct device *dev, struct rtc_time *tm) struct tps65910 *tps = dev_get_drvdata(dev->parent); int ret; + if ((tm->tm_year - 100) < 0) { + dev_err(dev, "the requested year %d is unsupported\n", + 1900 + tm->tm_year); + return -EINVAL; + } + rtc_data[0] = bin2bcd(tm->tm_sec); rtc_data[1] = bin2bcd(tm->tm_min); rtc_data[2] = bin2bcd(tm->tm_hour); -- 2.17.0