From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,MISSING_HEADERS, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A3DBC4361B for ; Sat, 19 Dec 2020 17:05:13 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id C8D5223A82 for ; Sat, 19 Dec 2020 17:05:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C8D5223A82 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id EB3006B005C; Sat, 19 Dec 2020 12:05:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E642F6B005D; Sat, 19 Dec 2020 12:05:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA1116B0068; Sat, 19 Dec 2020 12:05:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0194.hostedemail.com [216.40.44.194]) by kanga.kvack.org (Postfix) with ESMTP id C6CFF6B005C for ; Sat, 19 Dec 2020 12:05:11 -0500 (EST) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 8F3C0824999B for ; Sat, 19 Dec 2020 17:05:11 +0000 (UTC) X-FDA: 77610657222.22.cable06_091320e27447 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin22.hostedemail.com (Postfix) with ESMTP id 5BCFE18038E73 for ; Sat, 19 Dec 2020 17:05:11 +0000 (UTC) X-HE-Tag: cable06_091320e27447 X-Filterd-Recvd-Size: 3714 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf42.hostedemail.com (Postfix) with ESMTP for ; Sat, 19 Dec 2020 17:05:10 +0000 (UTC) Received: by mail-yb1-f201.google.com with SMTP id o9so8048203yba.4 for ; Sat, 19 Dec 2020 09:05:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:cc; bh=vRLuXOIA8ra1QfYJtJa6fHDyAv5QMA5uNL7Qfw/l2xY=; b=HWimkrBOC8ZIriK9HG74tC08/J66mjh16qNL2u/hX9z4DtBTOI3PLS/VmIBgtHgm9+ oYOWiJCYs+V4J7ubKHvfBqo71hOpbfn4DiycoDKwTvIMnHjIiFmojmbOqYoVM348ILAa r0rE4NQvpACZFo/ZvJbqEazXPskml7zeyzemvEMNIsFtA3bzK0Ybs+BMzf/DksqTnGnF jwIf8UEnZ1A0sOhQTBhAg48XKATfgXZGk54r9+/IqMTjQjJcvSKPFHgZuYUKteGas+7x gxdKbWiHvF+h76pCj18NzcKdblvSJq0+cgFGNZSvusbXw5aQbjQyp3madF2aEfaFT8rX v1Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :cc; bh=vRLuXOIA8ra1QfYJtJa6fHDyAv5QMA5uNL7Qfw/l2xY=; b=sRqy6GwEVAgZxOAn3khc1sm4XdEP3gDznIS22SuoalPyUymaF7zYgZJ8x6SqCgQ0c2 sTGInAt3Z9SZvFPtv9tIT5lTjMV7nbK+GsTgowGsLJkv2z3qfXcvlio6x6fi/itQ67Db vJK3+ccamRRhyRs6Sjb9r7Y/rZVVHkdsU+M6Mh7dAyZuHlf1BXJYNPsCI6YgMb6Ql7v/ GbF0l/uP+DXSYtVJlKcYDPKBukmA0gV07YZTGWj3EZvXRgY+P2R/Moth0Voo3nUWJDOo UmIpCqvwBYdqAlVr/0/zpdm4wNYgBodnwoQpePPx1nI/HmnG3Z6FwnXLWrvHrMO2k+xS 5bGQ== X-Gm-Message-State: AOAM531WScSCSKWWBWOk19qXCRGeqcRfHZp4XFB+hJvTsrkr5JjdTnDJ CXUwHldZzMzqqe7NdqjgywK+rrhT5d8bQTr09Q== X-Google-Smtp-Source: ABdhPJynjoV9VkSkhhIshxUKIFINAPf+sn8pGQ14p/7YjLEdfYWCJUzeZOOgVOwmhgKi8bRkAoffv0ZRs5VUt/0JYg== X-Received: from kaleshsingh.c.googlers.com ([fda3:e722:ac3:10:14:4d90:c0a8:2145]) (user=kaleshsingh job=sendgmr) by 2002:a5b:812:: with SMTP id x18mr13542220ybp.334.1608397510135; Sat, 19 Dec 2020 09:05:10 -0800 (PST) Date: Sat, 19 Dec 2020 17:04:33 +0000 Message-Id: <20201219170433.2418867-1-kaleshsingh@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.29.2.729.g45daf8777d-goog Subject: [PATCH] mm: mremap - Fix extent calculation From: Kalesh Singh Cc: surenb@google.com, minchan@kernel.org, joelaf@google.com, lokeshgidra@google.com, kaleshsingh@google.com, kernel-team@android.com, linux@roeck-us.net, Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: When `next < old_addr`, `next - old_addr` arithmetic underflows causing `extent` to be incorrect. Make `extent` the smaller of `next - old_addr` or `old_end - old_addr`. Reported-by: Guenter Roeck Signed-off-by: Kalesh Singh --- mm/mremap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/mremap.c b/mm/mremap.c index c5590afe7165..f554320281cc 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -358,7 +358,9 @@ static unsigned long get_extent(enum pgt_entry entry, unsigned long old_addr, next = (old_addr + size) & mask; /* even if next overflowed, extent below will be ok */ - extent = (next > old_end) ? old_end - old_addr : next - old_addr; + extent = next - old_addr; + if (extent > old_end - old_addr) + extent = old_end - old_addr; next = (new_addr + size) & mask; if (extent > next - new_addr) extent = next - new_addr; -- 2.29.2.729.g45daf8777d-goog