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 637BFC6FD20 for ; Wed, 22 Mar 2023 02:14:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A96906B007B; Tue, 21 Mar 2023 22:14:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A46FE6B007D; Tue, 21 Mar 2023 22:14:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 90E1A900002; Tue, 21 Mar 2023 22:14:25 -0400 (EDT) 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 8031F6B007B for ; Tue, 21 Mar 2023 22:14:25 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 54AB714035C for ; Wed, 22 Mar 2023 02:14:25 +0000 (UTC) X-FDA: 80594914890.13.5207F81 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf10.hostedemail.com (Postfix) with ESMTP id 97C76C000F for ; Wed, 22 Mar 2023 02:14:21 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf10.hostedemail.com: domain of mawupeng1@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=mawupeng1@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679451262; 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; bh=ZqlxZSyCK6+1u14TCpQ+KAwE5GJ+xzxz8UNjkYpFhzA=; b=GnZDDd+F0GhXFF0uMaoEGvhL69THKjAHtI8n8FRQ+zcPjqqY3UWRqaK8Rd1rd+0zx+FcSD t9r07ctdJNyoFH7QhY9du8c3C/i7u6Xaq9FUoxHNjevmB5tpFST3g+vdmk83WCAEBcB1Rr dMRhpYBrDOCPjqInKk2WsnGug4fdBZk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf10.hostedemail.com: domain of mawupeng1@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=mawupeng1@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679451262; a=rsa-sha256; cv=none; b=Y4wyfrpQ0BpzFvxv7Vf8IZOBY5uRCR+Lks8xTW3LJnHHXOpbhd39sGgkQnd5bGWOG7igHM 84OQa7qA+2X49dMbjchb/PQTA3PPECc66KakMVX9R6FOh1Do1tD0MPw9/AoIRhLe+6SsFL R5ikjTvjL414ynYx2esgy65kZRyW3uE= Received: from dggpemm500014.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4PhBly5Tt1z17N3v; Wed, 22 Mar 2023 10:11:10 +0800 (CST) Received: from [10.174.178.120] (10.174.178.120) by dggpemm500014.china.huawei.com (7.185.36.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 22 Mar 2023 10:14:16 +0800 Message-ID: <8be13253-b4ca-b134-3e85-b4097484bb29@huawei.com> Date: Wed, 22 Mar 2023 10:14:16 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 CC: , , , , Subject: Re: [PATCH v4 1/4] mm/mlock: return EINVAL if len overflows for mlock/munlock Content-Language: en-US To: , References: <20230320024739.224850-1-mawupeng1@huawei.com> <20230320024739.224850-2-mawupeng1@huawei.com> <27b9cb5b-0118-f989-80c2-6a143a4232af@redhat.com> <3ef9520c-6713-527a-0214-ac7a8bb2d49c@huawei.com> <6dd844f7-d43b-c744-f295-9f14c68d3928@redhat.com> From: mawupeng In-Reply-To: <6dd844f7-d43b-c744-f295-9f14c68d3928@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.120] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpemm500014.china.huawei.com (7.185.36.153) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 97C76C000F X-Stat-Signature: fz45hwnpr7fgajn38bk3gg5o3f19pste X-Rspam-User: X-HE-Tag: 1679451261-610546 X-HE-Meta: U2FsdGVkX1+HjL5wK8pR/jFhhK4AuRvRpwCNUCWsbIH33lbJ6uH4nJjeY8I8WQqredYAtJiQLkFKtP7iAwt6QOYJ0Mum0M7VV4jPa6LTCk1Dcj9QbdqySvCRLhxJZtJimDkCPQcKLpY/DQvvm/+IJcBsN7NmIJ+v0MH9DiXovxyqmdaO28ral2rmBtkgtKLe8mTbO6JrwouK37Z5X6U+Ll1KCfTpRtS1ABMaFZV16UNrVCfkAb5PoO6ULcy4ZWdZUzEgyw28RTnLt6Su9XRT0mzOwsD0K7fXWrL6wCGks/SkuasuEMpcj0vowTccK55x0JOMOKbCWFylLRDiD0OBKKKrOTkDwtJqk440DkJhhs6IR/EtUcrEY040XUwIxyolKTWONbwvcSb/YhFdORqBRuJ1XNDhYRTet4nlgGkFSK5JTKixB1aMApIymT6UHbW1sFBI4gOkjso1t9+WhnNHXOhQxD7PhuHB5lgGD0lRmZX2dNu7zLUay+iYe9u4XLRAE0COy114w3rZxGRXniZqyvmdYpPwVntJEtyfb5d7Nesmad2k+SZ6bQ+MfEHBGWnixBWxqUKJ1/1LOMqXlOUSaZYYcCxyCCcIMAzlvnY7d5rAmKG8AQkHLwK9nViXl631Ru3wQ1YJc3wAr6W8Ducni5nIt1SjjRYM2wF/83o6zJt95K8j32L2fpi3E+rU4NPsjbEiL9ykqY2T8CEEiNWHLAWVd8WBvsenrmPCxTgVGfIM4EofHxU2bcWIx9z2nLN6Vdo1Ech1DuBYsKXPrurJVL/mPGvahWNzk3YJu5+CoBCHjQD4WGH9XJvD2g/aV/kY2Q0mfz8p91ydNUM81MRsdtn3MvpzFSIbvp7SEqM7OKC87RYdzB2jVG8jh/asukP4VYUQQPBbJ2OU6bW1wbOdQ3eH1Mjci4dLiCH+G3GRjkxbgEqji7f6fl1iR8HKSZc+pOt2bCZ7F6XoBK2rLV7 1BemDMvH /tmCbwcxWjxadZlOM+BDvOpmy77Xulh1FD4u85Rr665h4rXUzimO7SPMeiOLU+T5N2AGcbP4k0kxtyGeWlF80vKXgRHl+Yt6LDif1HnDKYUTZHU/HKPeCSE/KhXKF2GubFTgq5UbfARlx7cwkFzegMPL2Uf8EhAJ4Xbp1VNAHJAonxn0= 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 2023/3/21 22:19, David Hildenbrand wrote: > On 21.03.23 08:44, mawupeng wrote: >> >> >> On 2023/3/20 18:54, David Hildenbrand wrote: >>> On 20.03.23 03:47, Wupeng Ma wrote: >>>> From: Ma Wupeng >>>> >>>> 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. >>>> >>>> Add new check and return -EINVAL to fix this overflowing scenarios since >>>> they are absolutely wrong. >>> >>> Thinking again, wouldn't we reject mlock(0, ULONG_MAX) now as well? >> >> mlock will return 0 if len is zero which is the same w/o this patchset. >> Here is the calltrace if len is zero. >> >> mlock(len == 0) >>     do_mlock(len == 0) >>         if (!len) >>             return 0 >> > > I was asking about addr=0, len=ULONG_MAX. > > IIUC, that used to work but could now fail? I haven't played with it, though. Thanks for reviewing. Previous for add = 0 and len == ULONG_MAX, mlock will return ok(0) since len overflows to zero. IFAICT, this is not right since mlock do noting(lock nothing) and return ok(0). With this patch, for the same situation, mlock can return EINVAL as expected. >