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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B222EC47088 for ; Mon, 5 Dec 2022 21:56:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CFF78E0002; Mon, 5 Dec 2022 16:56:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 280138E0001; Mon, 5 Dec 2022 16:56:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 148C38E0002; Mon, 5 Dec 2022 16:56:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 052098E0001 for ; Mon, 5 Dec 2022 16:56:06 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A343C140ABC for ; Mon, 5 Dec 2022 21:56:05 +0000 (UTC) X-FDA: 80209611090.19.81380AD Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) by imf04.hostedemail.com (Postfix) with ESMTP id 613E340012 for ; Mon, 5 Dec 2022 21:56:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=lWURtoNP; spf=pass (imf04.hostedemail.com: domain of jannh@google.com designates 209.85.166.46 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670277365; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cC7ZM3itu4XmclOIPc55YEuaARhUE6mDokgemZhoJX0=; b=6xykeddUntwl8w/LCO7dfpmqSCRSjzQrVbc6i7wcUg4DAXXZdrOqpHEGuw88py3wzBfYyW /QDjpIiJUxGR2wstbEt9HdFsY9CMtGOm1HKWI7+z7gHxjWM+Q7vT6vWpKJWYcRYJA/09SN v827RglF1lzKFzOI+C5D/NLzEIL5IOU= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=lWURtoNP; spf=pass (imf04.hostedemail.com: domain of jannh@google.com designates 209.85.166.46 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670277365; a=rsa-sha256; cv=none; b=jjSXEYk3/tnImLCoxkR1aHxVXwx4o2A/L0kntZtYn6D3GWtAhak1Tc//O0Osu/mHZxr9SL PESzx4uxFAOoommWJuCHsFBvPXAvPLgHSD6Y/J8mn471LbenHOpbJbwseqyIVLNtcYSL6L LvhIjYVGZE5tWipLLf1S2j6S7GAxzqs= Received: by mail-io1-f46.google.com with SMTP id g20so1382910iob.2 for ; Mon, 05 Dec 2022 13:56:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cC7ZM3itu4XmclOIPc55YEuaARhUE6mDokgemZhoJX0=; b=lWURtoNPamkBoYDP9BONRNGIovt6ceE8B2EGn0FtEdxaUCMnG7dKEAW1xkk0xUqc23 H+yhnD6JpqpkOcI/JoPyCjHDb9dBnWorQH/ftN/ORMIQ6KAD0UgOBV27pC+JyAGrcfTt ctAvCCzw57ioKz6+p/XGoPhYMFzKOIaHjDIrJYdCdUWMKe0U8rtDNFJyawq8v4SF0ol5 LnBYmPJdaieEkGewpJHXJqR7rQOK/9M2w/uvtlL6tpPM1cW2dW9yPqBplhygPvmiGfj0 FM27OkM+pneyo0bc9AwFZnxFuPDe5PaJwoj47I5jr6NdXjpl5bLthKlIjaIDrkUrwBtk ljnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cC7ZM3itu4XmclOIPc55YEuaARhUE6mDokgemZhoJX0=; b=cxh5YLT5KSunyjSEV3GwBw+ym/obWQDwlYUcEIL+dUnUrDnNwCZB+hJkD+CRPT9vjy 51dFEKunrKCkLGh+7+7mC6tJUw6qRTObynV7hqi/fqK9w+eoaB/WSl8nJIzdPEglhd0L gkr5+DeG4ZvLqe+RF/QoFC6n4QTnway98f/jcDH+fzWD+Y+7eiXPpTDqxwrrOAmn88NO 66BfYDPDmROhHVBxwz2NcsFi7VGLBfhkPX5LzgkHbCCdBpujH2vfUgUqEYU5crLeiQ5f uhwidQTsyIq5jObUlk1FwzmBGhiWjAGxAEZhd/ZGjffuPBbxmBczMM+VIgTpJN6ndTEN VkFw== X-Gm-Message-State: ANoB5pmMjMNGujx307pAElmrpz5xdLvIG0MnPNlrUWcFXlVAgtQw3yT4 bqJi0XRbQMAcBEP3Xre7/o+c9GvwlUvLOafuecHDcA== X-Google-Smtp-Source: AA0mqf6QWBW0dWqGvEHQmRY/u07Th9LetpMw6dWiAp3T2hSExNJk781bENNoZfLQuAjT4FuEXDfGvnOVp2rWQLPIy0I= X-Received: by 2002:a5d:8f84:0:b0:6d9:56fc:ef25 with SMTP id l4-20020a5d8f84000000b006d956fcef25mr29317501iol.56.1670277364483; Mon, 05 Dec 2022 13:56:04 -0800 (PST) MIME-Version: 1.0 References: <20221205192304.1957418-1-Liam.Howlett@oracle.com> <20221205123250.3fc552d96fcca5dc58be8443@linux-foundation.org> In-Reply-To: <20221205123250.3fc552d96fcca5dc58be8443@linux-foundation.org> From: Jann Horn Date: Mon, 5 Dec 2022 22:55:28 +0100 Message-ID: Subject: Re: [PATCH v2] mmap: Fix do_brk_flags() modifying obviously incorrect VMAs To: Andrew Morton Cc: Liam Howlett , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Yu Zhao , Jason Donenfeld , Matthew Wilcox , SeongJae Park , Vlastimil Babka Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: c3iynp5cg9qkat5hte7owjewdgo1gzyo X-Rspam-User: X-Spamd-Result: default: False [2.89 / 9.00]; SORBS_IRL_BL(3.00)[209.85.166.46:from]; BAYES_HAM(-1.21)[81.82%]; SUBJECT_HAS_UNDERSCORES(1.00)[]; RCVD_NO_TLS_LAST(0.10)[]; MIME_GOOD(-0.10)[text/plain]; BAD_REP_POLICIES(0.10)[]; R_SPF_ALLOW(0.00)[+ip4:209.85.128.0/17]; R_DKIM_ALLOW(0.00)[google.com:s=20210112]; RCPT_COUNT_SEVEN(0.00)[9]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; TO_DN_SOME(0.00)[]; DMARC_POLICY_ALLOW(0.00)[google.com,reject]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[google.com:+]; PREVIOUSLY_DELIVERED(0.00)[linux-mm@kvack.org]; ARC_NA(0.00)[]; ARC_SIGNED(0.00)[hostedemail.com:s=arc-20220608:i=1]; TO_DN_EQ_ADDR_SOME(0.00)[] X-Rspamd-Queue-Id: 613E340012 X-Rspamd-Server: rspam06 X-HE-Tag: 1670277365-93474 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: On Mon, Dec 5, 2022 at 9:32 PM Andrew Morton wrote: > On Mon, 5 Dec 2022 19:23:17 +0000 Liam Howlett wrote: > > Add more sanity checks to the VMA that do_brk_flags() will expand. > > Ensure the VMA matches basic merge requirements within the function > > before calling can_vma_merge_after(). > > I't unclear what's actually being fixed here. > > Why do you feel we need the above changes? > > > Drop the duplicate checks from vm_brk_flags() since they will be > > enforced later. > > > > Fixes: 2e7ce7d354f2 ("mm/mmap: change do_brk_flags() to expand existing VMA and add do_brk_munmap()") > > Fixes in what way? Removing the duplicate checks? The old code would expand file VMAs on brk(), which is functionally wrong and also dangerous in terms of locking because the brk() path isn't designed for file VMAs and therefore doesn't lock the file mapping. Checking can_vma_merge_after() ensures that new anonymous VMAs can't be merged into file VMAs. See https://lore.kernel.org/linux-mm/CAG48ez1tJZTOjS_FjRZhvtDA-STFmdw8PEizPDwMGFd_ui0Nrw@mail.gmail.com/ .