Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp754428imm; Thu, 13 Sep 2018 07:16:29 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZr2zY73E8ZuqUlPv+/0VZ/5KnGBfTdippyojUsdoRal+CgsorM5G0qJs4zQ+xiUjUH824+ X-Received: by 2002:a17:902:304:: with SMTP id 4-v6mr7602945pld.39.1536848189584; Thu, 13 Sep 2018 07:16:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536848189; cv=none; d=google.com; s=arc-20160816; b=BwiLvefJKS5mZ7ipAEfYCfrz34LgDOPQO/+NAg4SCnwx1EGnDN0k/vhwBedd1Vtqji ILBnvfTdUoebSXxJSjEitZ/jB9dMxSO1m9IftU+4wjnhtPgRraPzV3SbaHA0AI3LSYkN xKiHxs+XirdtRWehFn8LLOtcuaHmx3NUdAsFuyxg6hmn6MCbloXsd/wuu/a/rYuzSf7v m3OHzXFi0phL3EFE/44g+1UmVdFVyPjeji+mOFmdQgSPnZA+WRIWIa/diN9vzLZn5uiH vnDCJxb2THt6YW5rvRrLbsOEmSvCIzI6VbAa0c00se4nUlpwCl/vcx2oZEl4TI8aryYy +XJA== 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; bh=WgKfYTOaJWBUwH2AmhVkFuQNSBLbEcKkAyLXnet7CMg=; b=QV16cXclEuG3lTc8o7yoeNV1YaS7Fl7D6BUFm4ckkXqU0oFs2beRehjXR06e2oL8g4 HoyrniLuTnJ/GhEFFc/+Ru6k+ZyuFdPS3Dmq2DHNEhAv6BYqUqgykSKc4EBduWQouCUG swEjGSqoX4WNk5RfB+2X/5qeGEg1mK4/6VZQ7IftDFyXD6NSRRHf2aiFHXJatktqw6Yq 8HnnG0SdOgBD+ud6ncOl4CGUy5rA5MAD8bu/Tnhe5s9CCyhYDaL5WhYD+7rdU65ZEavd m1Wpj7nzx9vzuNu3fW7HWSqZuNieJg+IUBh6zoAMbpKM+MjWbLyRpIsTX3u2ur2tlZ88 Oxxg== 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 y27-v6si4264933pgl.479.2018.09.13.07.16.07; Thu, 13 Sep 2018 07:16: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 S1729852AbeIMSxD (ORCPT + 99 others); Thu, 13 Sep 2018 14:53:03 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:60348 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728650AbeIMSxC (ORCPT ); Thu, 13 Sep 2018 14:53:02 -0400 Received: from localhost (ip-213-127-77-73.ip.prioritytelecom.net [213.127.77.73]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 288A7CF3; Thu, 13 Sep 2018 13:43:29 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andrey Ryabinin , icytxw@gmail.com, Andrew Morton , Alexander Potapenko , Dmitry Vyukov , Linus Torvalds , Sasha Levin Subject: [PATCH 4.14 035/115] mm/fadvise.c: fix signed overflow UBSAN complaint Date: Thu, 13 Sep 2018 15:30:55 +0200 Message-Id: <20180913131825.870428284@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180913131823.327472833@linuxfoundation.org> References: <20180913131823.327472833@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andrey Ryabinin [ Upstream commit a718e28f538441a3b6612da9ff226973376cdf0f ] Signed integer overflow is undefined according to the C standard. The overflow in ksys_fadvise64_64() is deliberate, but since it is signed overflow, UBSAN complains: UBSAN: Undefined behaviour in mm/fadvise.c:76:10 signed integer overflow: 4 + 9223372036854775805 cannot be represented in type 'long long int' Use unsigned types to do math. Unsigned overflow is defined so UBSAN will not complain about it. This patch doesn't change generated code. [akpm@linux-foundation.org: add comment explaining the casts] Link: http://lkml.kernel.org/r/20180629184453.7614-1-aryabinin@virtuozzo.com Signed-off-by: Andrey Ryabinin Reported-by: Reviewed-by: Andrew Morton Cc: Alexander Potapenko Cc: Dmitry Vyukov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- mm/fadvise.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/mm/fadvise.c +++ b/mm/fadvise.c @@ -71,8 +71,12 @@ SYSCALL_DEFINE4(fadvise64_64, int, fd, l goto out; } - /* Careful about overflows. Len == 0 means "as much as possible" */ - endbyte = offset + len; + /* + * Careful about overflows. Len == 0 means "as much as possible". Use + * unsigned math because signed overflows are undefined and UBSan + * complains. + */ + endbyte = (u64)offset + (u64)len; if (!len || endbyte < len) endbyte = -1; else