Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932874AbbLGUYB (ORCPT ); Mon, 7 Dec 2015 15:24:01 -0500 Received: from mail-qk0-f169.google.com ([209.85.220.169]:33296 "EHLO mail-qk0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932668AbbLGUYA (ORCPT ); Mon, 7 Dec 2015 15:24:00 -0500 MIME-Version: 1.0 In-Reply-To: References: <1449198571-21133-1-git-send-email-sasha.levin@oracle.com> <56637E2D.1040603@oracle.com> <20151206221149.GA22451@netboy> Date: Mon, 7 Dec 2015 12:23:59 -0800 Message-ID: Subject: Re: [PATCH] time: verify time values in adjtimex ADJ_SETOFFSET to avoid overflow From: John Stultz To: Thomas Gleixner Cc: Richard Cochran , Sasha Levin , lkml Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1491 Lines: 36 On Mon, Dec 7, 2015 at 12:15 PM, Thomas Gleixner wrote: > On Mon, 7 Dec 2015, John Stultz wrote: > >> On Sun, Dec 6, 2015 at 2:11 PM, Richard Cochran >> wrote: >> > The overflow is a latent problem, and the patch should: >> > >> > 1. return error in case (txc->time.tv_usec >= USEC_PER_SEC) >> > 2. remove the redundant test in timekeeping_inject_offset. >> >> So we probably want to keep the check in timekeeping_inject_offset() >> since there can be other users as well of that function. >> >> But its probably cleanest to add a check in ntp_validate_timex() >> instead of where this patch does it. > > So instead of open coding the checks on both sites, can we please have > an inline function with proper comments why time.tv_sec can be > negative, something like adjtimex_timeval_is_valid() or such. Right. So the only gotcha with this is that adjtimex wants to check that the timeval is valid (before we convert it to a timespec), but timekeeping_inject_offset wants to make sure the timespec is valid. So one nice inline function won't cut it. But I can add a timespec_inject_offset_valid() and timeval_inject_offset_valid() which will do the same basic check for each type. thanks -john -- 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/