Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754742AbbLDBz5 (ORCPT ); Thu, 3 Dec 2015 20:55:57 -0500 Received: from down.free-electrons.com ([37.187.137.238]:49451 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753421AbbLDBz4 (ORCPT ); Thu, 3 Dec 2015 20:55:56 -0500 Date: Fri, 4 Dec 2015 02:55:54 +0100 From: Alexandre Belloni To: Sasha Levin Cc: a.zummo@towertech.it, rtc-linux@googlegroups.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] rtc: fix overflow and incorrect calculation in rtc_time64_to_tm Message-ID: <20151204015554.GB3515@piout.net> References: <1449187944-11730-1-git-send-email-sasha.levin@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1449187944-11730-1-git-send-email-sasha.levin@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1438 Lines: 44 On 03/12/2015 at 19:12:24 -0500, Sasha Levin wrote : > At some point after humans go extinct and robots cotrol the world, dividing > he time64_t by 86400 to extract the days will overflow a 32bit integer, > leading to incorrect conversion into rtc_time in rtc_time64_to_tm(). > And at that time, the robots won't care about 32bit platforms :) > Signed-off-by: Sasha Levin > --- > drivers/rtc/rtc-lib.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c > index e6bfb9c..459cd4d 100644 > --- a/drivers/rtc/rtc-lib.c > +++ b/drivers/rtc/rtc-lib.c > @@ -54,11 +54,11 @@ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) > { > unsigned int month, year; > unsigned long secs; > - int days; > + time64_t days; > > /* time must be positive */ > days = div_s64(time, 86400); > - secs = time - (unsigned int) days * 86400; > + secs = time - days * 86400; > > /* day of the week, 1970-01-01 was a Thursday */ > tm->tm_wday = (days + 4) % 7; > -- > 1.7.10.4 > -- Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/