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 822E7C4332F for ; Wed, 28 Dec 2022 22:17:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77F508E0002; Wed, 28 Dec 2022 17:17:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 72F718E0001; Wed, 28 Dec 2022 17:17:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61E7D8E0002; Wed, 28 Dec 2022 17:17:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 53B4C8E0001 for ; Wed, 28 Dec 2022 17:17:08 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 122E9AB348 for ; Wed, 28 Dec 2022 22:17:08 +0000 (UTC) X-FDA: 80293126536.05.814B5CE Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 61857140015 for ; Wed, 28 Dec 2022 22:17:05 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=uJHEgKDZ; spf=pass (imf26.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672265825; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lpWaOVafdnrFrkubKvPdzVPqOGf36FI0Yohk+5sBFLc=; b=GJ1GnWr6eWKoLEUmpPMVtpKEdYW57rhVkJh2tDIeKrmzFka305AuuRjfC+p4gQOqt/zJlE kJFIYvmJZftpmaha43ZhcbJ485Y6iT1VM5gaLZBWiX5o86VbearQRB6DmBR0V/Vxbua6eB fYZpe3ez/RVbNy6p2sDObBCpzEvpNaw= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=uJHEgKDZ; spf=pass (imf26.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672265825; a=rsa-sha256; cv=none; b=xLRcFxpIEJeME624iIyA8lHUTvkU4EhLmkku4Otbx6gVaskd6mQuQph8elcgBivly2iGNh pJsdz4BSyGNlp6U8MjuBvXHwz7W2LLSK/fVHL42WsdtQfPYhb5k+P3qm0uvax8zXesSDQa Ge/yFAu5R2nYcqhe2QeboVFVpz5D6y4= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 18A376160B; Wed, 28 Dec 2022 22:17:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB142C433EF; Wed, 28 Dec 2022 22:17:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1672265823; bh=TIUBssIqTL0wXOJJ79ujlgOXLd564sfw9ogVxe9yqhE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=uJHEgKDZT6Vvn8sswHYsfVvULQSaTlrCcGRC7Wd+0Ov3vn7PIGC5+LjgUuJTZu1m+ UhtG0l6Q/qSYwueLsAtvIZdUPEEYNfZWed51W9Rqp+b5Vtb9kuG6sB8jPkBCAsDQo6 Q7NrsMvuR3FfT1yoQecwdmN5j8PBrSW1NJRctXaM= Date: Wed, 28 Dec 2022 14:17:01 -0800 From: Andrew Morton To: Wupeng Ma Cc: , , , , Subject: Re: [PATCH 1/4] mm/mlock: return EINVAL for illegal user memory range in mlock Message-Id: <20221228141701.c64add46c4b09aa17f605baf@linux-foundation.org> In-Reply-To: <20221205034108.3365182-2-mawupeng1@huawei.com> References: <20221205034108.3365182-1-mawupeng1@huawei.com> <20221205034108.3365182-2-mawupeng1@huawei.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: ozaiehg4qoowngsny3z8dr5erjxjitnd X-Rspam-User: X-Rspamd-Queue-Id: 61857140015 X-Rspamd-Server: rspam06 X-HE-Tag: 1672265825-193989 X-HE-Meta: U2FsdGVkX1+ZDWuxKs5efOYG1JUFgSqKWzE07T/GFVvxWZ6y/f+CmMJJXV3YRc03nm89h+erFn/cl4p5r32b2bmZJsKkROaUS7gSdaSgTcQco9M0gaSKeI5Z/nL2Js+IEpCJm48AHaxHnCvvihQupw5B6eWFTGBhIxrBwMhouq3CEAoed7h8B0OFhLQSpCgO3vlbhmgQcZkMlu75XD1LsGKYus8X+DnVCQgxXZvhJCzvvmpUE2dIfsOLvgL6M6spYwLS1UH4zoP1q5twsNLCKnzWbBAnxyp2w9ziKaA15yukKy0918/hXPgjJG4jPDp0da9Yn8id1TZd4ZPkN9eKk0Ang1WKfGrjn26F72X53oz419YpzSBUfBKsgdpNs58poMe7dII5T83odwDELfG4sGlptW7gFWhz3uIjeMTVG38ZnxKOBux3JuSshm3UFHzDxccnkuoS4IBKjVEgZq/L6oPlcjPM8z65+TS/T+eGaBCQsD9cNcS2f5WOXnEqFNjXcYci0f+0ygYcs5z7dS1LUdsk8kd5hA19BBrjt0a0Mgrqjm4xtCUqYiUNWG6A/8FwzuqUUb1DvAHyCWPVwH3Tbv7+v2BU/tt3LGmohJoR0kG3J+7pEMt8ZbmQR+4mxyRZdTbA8ZohaBsmRxm3iybTEoLJHHNArVtPQMWDfcfTKJ/8Httw10sZMK8aJRRaKUaeKB7x8SbXtJm3SCuqZnyyiUKLjgfa+dyUKvvGvpq1+kTRQdaMiIH+3a08nL86yFld1nw909oPnNxp/jtfBoEiEGcHgHHXk+a4CobtToUa8qCOScSGcg68OsJ9EafGRZ+WVufDCy4lAJaAKU5nLFgwLka7p8SrbbHDQeUqeZUxC1gd4dY8A1xRxzmlXRXKqw4iD9xcxNaNhvKk5AKSzvuooDG5TfcXeKFSFQLI7JQWYaSknZBCFRMQC7znTgq2YW5x9q28lcpEXkB2coerDDo MseN4xVR xMByfNzISlI8xi5x5NP4+XULCFBeQWT34DAgbOLw1fEjGl+sTGs8cEPgfEKfUzdRf8q0m 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, 5 Dec 2022 11:41:05 +0800 Wupeng Ma wrote: > While testing mlock, we have a problem if the len of mlock is ULONG_MAX. > The return value of mlock is zero. But nothing will be locked since the > len in do_mlock overflows to zero due to the following code in mlock: > > len = PAGE_ALIGN(len + (offset_in_page(start))); > > The same problem happens in munlock. > > Since TASK_SIZE is the maximum user space address. The start or len of > mlock shouldn't be bigger than this. Function access_ok can be used to > check this issue, so return -EINVAL if bigger. What happens if userspace uses a value somewhat smaller than ULONG_MAX? mlock(addr, ULONG_MAX - 1000000); ? Because if the above works successfully and if it no longer works successfully with this patchset then that could be a backward-compatibility problem.