From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09A7E36402B for ; Mon, 16 Mar 2026 21:12:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773695568; cv=fail; b=dS+SXTmgrSW3IKj1RKUU989ucpLaf3BsW0exTKAmwiNHQvoHR97uS/2GDC5bC0IwJUI20p3JT7earZ/jhILo7nrtG8a1VGKdSp1FiGiYRsDe/zne4poEuj/LBzd260o1H9y0+i9F3iAIvvNm2/d0DIcjM+oyWQEsiQKKZhzmo/U= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773695568; c=relaxed/simple; bh=vQFLvq9WyQcvt1/dPhp4xdGDU7NJTfOpZs1QFxjrUWY=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=m1i2Igsum4vJmtHj/Y9A45jHqg7zTAyXe7nAaPxUNL1hf6CqECKhscN8igMSM7h+NLKB8+KISMfVmPIJvVd5mKyPvlZHz/z5vMa4V5LDyNMBX2RG3MdW4rLCqF6R9vP52P3pSnOnJEJLCvcH/VFjFbF69GGsd4g/5kIJyfOUbHs= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=PBO9PSn6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=0JxYQQxb; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="PBO9PSn6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="0JxYQQxb" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62GDfcWx1788343; Mon, 16 Mar 2026 21:12:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=g7lYeI/8AODIANzxjdDMqmFVQp3jToY1faH+oVWm9qM=; b= PBO9PSn6BEThcn2ni+yoxpz3vlXTNnawAEbBVRhXngu5zv+imgrPNbg8iph2DWBD q36Ask1exvQ4dXfvWQSpuChhN7Z8gHygCSzzi+z4LF5pBNWO0RWHlfq7pf+Mrhxt KsUXDtpt8LHCR5SwBQmDjBiZaIWyJel1m7jeZKpnmpA0QgkmB9hc2ET3bdI8fd2u fwiq8fqKeIkD/DMPEYNpGaru94Lz8tlAGRzGmDDEhKP9RLcVlcFFUlsHZRMSnzE1 Eugw+rlkCfwzIrDjP+YkZfo4Pw8HiRZXNhBm3Dx+8VMcSXM4MHvd5ZVraz76InbV vz4Oive7Vde/AFiAcyRGPA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4cvxf433c2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Mar 2026 21:12:19 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 62GJvl7Z014054; Mon, 16 Mar 2026 21:12:18 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011067.outbound.protection.outlook.com [40.107.208.67]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4cvx495spw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Mar 2026 21:12:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mUxU04F/RbGyPB4jCEHwgfa9PGEn0v0Cern3P0ni69sQd4BdTIoOEat2ctbn1WjDpCC1jEn7N2MiwrAjDc1fYSnoWDhGmQJPwpnrxuVjdfSxXK1Lge6AHNXm1CYkGd/Puv42FzgSQj8advT4XBG+Rm0G9zaLYfllWkj/0M7zxYdksEwn8zkE8s0e+zMRpI/q0G2YRrYs6PXdXloToPrXO2wivOeS5xQd5+XYjoRMhfpFimC2EpcpEP8s2lXE9274Uy1QwA5NoLPQd6YzB5IOtviUiJCUJRdIxYF5HkKRoqdvEoCE7juTpWcbQXJWiA0edLD54N+TedS2wGjP+YQUNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=g7lYeI/8AODIANzxjdDMqmFVQp3jToY1faH+oVWm9qM=; b=Jp/LIONlQdx5doRwgeiQWfSue+slqwFVDsUYXjNlpC+I+9EKnwBVMSTLEvNH8/JeEQuXR8zl7scmUGFIZ7pbjbPDXY0n1KWAVqfTDaaBRMbJ4xnZhYi+/VNlRP/RCUEByy7+YiZeKn+xqZzImKNh1VjCuCKKbscs/UZ3NXo8KV2r0nsAqbOanyZg5x4kPml5yYeeqHnjZPKexpjEoMjOmAc0jA3Jc2DW0h+S89UTb+bSe2qN3cF+I4lvF1TG0lVhO0gT5PlEUMwLWsQpv9BZz2Oh0ndO/KCNv3dtdopRjCvpMZTqdwPbdOoh3LfbJEcu3zbGAcfAjDtGcP/sdjl80A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g7lYeI/8AODIANzxjdDMqmFVQp3jToY1faH+oVWm9qM=; b=0JxYQQxbpVcZRj1edKkN92EpBqbov7kRxn86jqVbVPpld8Y10BLTw1a611Aw0tv8lcD2bgYoQtNaNZaYgK6Spip80hgOAfdfCT6DisTyHIVi+yIB9vedMYbdCYA9XJfncew50uhvsTBUeRcJ/vMboZMylPaxwWQTHfs8mLEMC/E= Received: from IA1PR10MB8212.namprd10.prod.outlook.com (2603:10b6:208:463::20) by BLAPR10MB5155.namprd10.prod.outlook.com (2603:10b6:208:320::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.24; Mon, 16 Mar 2026 21:12:16 +0000 Received: from IA1PR10MB8212.namprd10.prod.outlook.com ([fe80::ee8a:bd21:f1cb:c79a]) by IA1PR10MB8212.namprd10.prod.outlook.com ([fe80::ee8a:bd21:f1cb:c79a%6]) with mapi id 15.20.9700.013; Mon, 16 Mar 2026 21:12:16 +0000 Message-ID: Date: Mon, 16 Mar 2026 16:12:14 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [Jfs-discussion] [PATCH v2] jfs: add dmapctl integrity check to prevent invalid operations To: Li Lingfeng , Yun Zhou Cc: jfs-discussion@lists.sourceforge.net, yangerkun , linux-kernel@vger.kernel.org, linan122@huawei.com, kovalev@altlinux.org, contact@arnaud-lcm.com, zheng.yu@northwestern.edu, rand.sec96@gmail.com References: <20251128155150.1493986-1-yun.zhou@windriver.com> <2febd16b-77a3-45c7-80cb-e324d3540746@huawei.com> <686bc501-5263-4054-8cae-3529be86b9c5@huawei.com> <731d5b3e-702d-4f2c-9970-67f1452ccfbb@huawei.com> Content-Language: en-US From: Dave Kleikamp In-Reply-To: <731d5b3e-702d-4f2c-9970-67f1452ccfbb@huawei.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CH5P222CA0005.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::16) To IA1PR10MB8212.namprd10.prod.outlook.com (2603:10b6:208:463::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR10MB8212:EE_|BLAPR10MB5155:EE_ X-MS-Office365-Filtering-Correlation-Id: d19e0da5-9d0d-4b41-cd75-08de83a0b339 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: zQXyDoWydq34hi0T4z7CE3iwMf3RQlK587XsalOODVPev2mGVS09581SBIQgC9F3+ip936Q2+xi+/+qqgA4WK5YGVHzARg1bIa1FnYPgzynYLHHWmmGAyrmow2DgT8JBfj+MALGjfdXzfr5bmH61D9ueugb73tQJbAcMu/KS8nDeLNubtThF/ujR7veYN9yPRTlNs3WTE4PSdQW9REn1Ink5tQMdyoFtTqDp0FabdswsKZlntK98BLW/WwzS5fdGNoTrq0U6t8/XHeEaJ2BAKlI2TCcJ32aS4Xk9BgU3kwfs2EQqzNZimptTUbw/I+0CsTaMtu8rvLvxNJ5+KLZp1r6NJOsPe3kdVallJxwbEqYsIV+xx4TRg9zOxvuNjgvWL9nEz+oTP7PsRp1xUa2zAU4wrglsKFExyo0/Rsfv+3Q+TquGwC+R+m09e1u6E1oPSPsuD2vPp9Is3e5kW4ubKugnR4GHYHYm6AdKnzJjvP1COcOm9U+zs5W05r64YzpBvDcoyIdJZ5009qII+vr+FxEUg7MrFEFheqByzqrjcAZgFE5UBzjiGs2Ydvcg5XFOwKa2G9a9Lf9HfPcivfoyMMXHMUloMqaq0BOgPV0fQdakuz/i8KL/Iod7IL3Gp8MQ0SCSjp9W0AV9iOK0crxd1uAyxwYeaKNIktlCR7cnRn3Rj7tDkoc8n0jLAsCrhTZzXe7cObiawENfwVi/s6G5xr1HQKjMBz8+awjotMZ2/2WpjDQ8QtQyGKABncv7H3OI X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR10MB8212.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cnRLSUFFZHBTb2V3Y2xKODArSURaSlh0a1FSK0tlVW5TRjVhRzFZaDBpcDdU?= =?utf-8?B?bGlCZ0RVKzhyY041djdWSmE5Vm1maUJLanZXS3UvbGZ0MHdVWm1tMFNmTHZt?= =?utf-8?B?NnptUWF1QXZrWllrZkt3K0dNbkVGQ0gzblJJNnF2S3dUZnFGS256YkM3S28y?= =?utf-8?B?QSsrUklCZDZHOGpmTnJrYnhxL3FMaWo4UlNNTGx0Rnpqa0VlOXBZZUM4QTd2?= =?utf-8?B?aFdsbk51SjBxMGFBZSsyR3lVc1k1VVJJV01aL2hCQ2VULzF3SU41WlFMcldu?= =?utf-8?B?aE1RbWVZVFJ5a3F0SlB2T3RyeURGY2VQQURPWEZYWm01Z3lKRThqUWZYVW5j?= =?utf-8?B?R1ViMHFsVllVTmorejVEV1pZcWtFVFljRytVV0JIOVBuZ0RQT2doMEp5Q2Ju?= =?utf-8?B?ZS9QTXhaV0J4Tm9NYlpTaXE1WnRVaFZHWEFEWDN2aXBod1kxMzUrRmtRbVgr?= =?utf-8?B?WWZZM0liTlR3WHdkRjVVbDRZTGpqc2RNN000cXZzcmFaaFQ3OEpqRG15QWw2?= =?utf-8?B?UU4yRUNyWVFsZnlXeGF5NVdTZXNzYkZ3d295NFQ2SjZoZ3JpUGxWVnl6a1Bk?= =?utf-8?B?L25QVHd1cUtvNWwxcmt4amRHTDYrWE9QcFFmaWRRR0xDNTdZK2o3bVFvZlB6?= =?utf-8?B?akZnT0lJcXgzMHp2Vk4yRkN3U3dMT3B3Si9XMjY1ajY5ODlzTXFWR0Ywb1F5?= =?utf-8?B?Zy92UlRqSVJzM2cwdDQ4ZlVMRFc3R0oyTmtCdUpaeFVwczR0bU9rTEYrTXRE?= =?utf-8?B?VjVJVVJ5UDJ3c3RlWjByVDlzK3FwRkJWVmtKd0lDR2FDakFGc3R2N0pDMS9t?= =?utf-8?B?T3hCUUs2TVlaQTd3V3ZUeXpvbkZaTTFYaWJzUks1OHVCS3lxT2dUWFd6cXJj?= =?utf-8?B?eW9hT0VZaVlwVnFjL0lWWkF5VExPblR6MGdETzY4c3E4Y2JNekxnWFU5akRF?= =?utf-8?B?T005M2M3Tmd2MFJMQjgvT25lSGF2eElQVndLVnRQZUdvcXRPbWh1Y1dVbkRi?= =?utf-8?B?czFOdDRXN3VPNlZqeWQ1UTdab3VEczVMQlpzWkZ3L3pUOW51eWc4OHJFbk15?= =?utf-8?B?a0NBR3ZBTjM1WnhxR05nVUhMalQyQUpvQlo1Ty91MkR1S0Z1dTI1Y0FQZS9n?= =?utf-8?B?aTJIZHBVU3NTcUpMWkNpQ01wVmRCSE9sYXlNL005QW4vWHFzejI1VDRnU3Mx?= =?utf-8?B?cHpJZ1NGYTF4Z09EOVIrMHB3YW1xZ3JaQ0lWWlpiZy9zempqM3paTWozOGJz?= =?utf-8?B?MHYyWGM0dVk4RXlBOC85M2FjTHpoaWt3NitEcjYyYU9IQjZDcUZhWmNlVVh0?= =?utf-8?B?bWVOc0ZaWkZIOXVMVHdJWjJYQm1HOWtjTCtIV01UaEN6R0J1K2tMWVdDOFc1?= =?utf-8?B?QXJYL0VCazZVc0Q0VFY5VkMrSzVDTE13WVFuR2JmSkxkYWVQQVFvYnhIcXlG?= =?utf-8?B?Uy9KcHBsVmN5aDhkN0QybkEyUC9LM0xvUnhRd2hpNUFFUXNxdUpKNTV3UFZr?= =?utf-8?B?WHF6NEE2QmFOSTdFbEcwblB2Wnd3RVB1TGFzdlFLZFhOZzA3WGdhOW8yY25N?= =?utf-8?B?c3lWRGtxS1hSeVBCRE4zOXNQZ1FpUnMwVFdsRDZ1N0ZRMHhpMjNDNjlwN2hn?= =?utf-8?B?US8zR3Yra2FYQWVoWHl5enZ2Z0cyaVo0UWNSaloydkIxK3c3YnUrNnFFWE9s?= =?utf-8?B?OUExRlhtS3RMemJTU0dtdUdNMVdnNE1uQm54eE1TSTJrM1p4bmNyWVJlK3dG?= =?utf-8?B?UXlSTWRJbStWZkc1THQxcEYvMTd4ZjJYb25TaWVIYWQwM01YOC9JZ0xDU3gx?= =?utf-8?B?UWRSUmIzY2VvR3JsL0FBN3hKT0U4dktpSjhrRlJSOE14V0l1WEJKVEJrMVFC?= =?utf-8?B?N3dieHZYRTFkMERvdUV1V1h6RE9JZjBpMUt5WDgrUmVqSTRaMTI0WmV5ckRM?= =?utf-8?B?ak9Ta2Z4K3Y3cHp2WVc1ZGNVM3o5K0JQZkFVdmlrZUNhNlFiVVU5K3JEQXJY?= =?utf-8?B?Q1ZnM1ZrbHlLZ0hlZWlTRENPc0srRk1sNy9Sb1Y4RXRuc3RQOGNzN1lLS21i?= =?utf-8?B?dmgybE1TT1laZDNoVEU5SVVpeU81Ti9WeWM5WnY2U0tlYXZJakpFWEVPVzRS?= =?utf-8?B?dCtsTTR6ZGxBK2xHd0dYazZVMmdEaU81TWxxcXQ0YkVOaFppY0J5QkhFczZY?= =?utf-8?B?SzdKYVdjRkprVHRLVC9WR09xdjRkald1Y3pmRCtZU3p2cExjVURjY1JpeHVZ?= =?utf-8?B?VW1nV3FHZTRHeHFSVGhWdHpnMjZ5Rk5IdGt6dmJEbzFVTXdxZlBJRWV3ZDRN?= =?utf-8?B?TkhvclJxRUMyMlpkbmU2cnhObUZnS3BVSDAwSy81aGRpZFg5VkppWlpYZ0xV?= =?utf-8?Q?EAEi18AUnu2w8zcQ=3D?= X-Exchange-RoutingPolicyChecked: bpo+/dgkUKKnbvv3T7bdtm0aLWc3nms1sOm6SLRDXB5CqmV85Z9mrqlyQVT+Vbnj29B55DmFq6VrQtimRdcoWSYtRyt00jwY5klzA4eaanvdVbIR/QC2XebtaNlBRgo+SVjcxVYXjVdlBhusD8DFDJmbjaSSHOujKlZydAP68vL8ajxkOglgbYDCqS4I0jZfRSZsGxMxSvWEamhe27qLTFgjeZCbktnKnPaLDcE1D/q1Xky0hlEWiLedNMWChv5MJzICfmLWeYTXLN83Dogi77QNaH3KZX/RpBTHROJguqa9KHioWlMRFQc1p2QQTuiNq9SHpWFVguaePbY/IKeylQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: v/xsTYbrJkG88qQtMCYWu4XwQr4Q31I5Dvy8RX7k6wuAJ9n89L236qdcsZPiQbGDt1QE1xOv3RslTej/7L8m5nNxeJ4ps3QWvHgO6cIMSgGsqt4xO9PF8/6GOpAAgCWjWzb9V3B9Z+wDN9SjaSSiWyZTALzP27r361YFzMAyegJSgz0befe58fVLdIspYCZATccuL3d13gWtpXma1g654/0WMGk35nbnOHE2OhmYSow99zsmziATUkPlvAgCG3IQDznIdpYk7XTWOy8lJqYSHsl7wq1Pyw44znZhh0+yPq8h/aXXG8mdmNkI5/N1sEg4PqT0NuuEQtn5KlFpUPmkjVPpN8avzjCY09LSXP3Y25sRp11LHJLv9UkUCA25BR6zmrYS8w+MiIcEKMrEF9oUc+/VoWYqnJhLbGYFvGVUDHvl4KkZ9jg6xS8uKeN2snWDA4Dz2Wrs6BdnXsSNfibdYOFnSd9KxgzImsQcBbU7fTk0A8AhwNTnR58rPqwdHgqHsbO3Oxlq6kLDtcFUsKlWtJKwmdOH2pMcveeaBER4QGYzjqH84jGddFIAy0tGqtrBFdHfdXg2P740nFgKczMHvS2vvYP+03z+LlNJNKNjQc8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d19e0da5-9d0d-4b41-cd75-08de83a0b339 X-MS-Exchange-CrossTenant-AuthSource: IA1PR10MB8212.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2026 21:12:15.9494 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sj6e9Y6L5PIK22Lr6NemqKWx2ld1BSHzxvJhCM14ZuwRXnh7+gUYdFrrqvOmVcmTpfK4rG7ZKzV6H3Ix7OdFmD4LYyz1GThBf5vO/T34tfc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR10MB5155 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-16_05,2026-03-16_06,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2603050001 definitions=main-2603160172 X-Authority-Analysis: v=2.4 cv=ftrRpV4f c=1 sm=1 tr=0 ts=69b87233 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=VwQbUJbxAAAA:8 a=FP58Ms26AAAA:8 a=hSkVLCK3AAAA:8 a=t7CeM3EgAAAA:8 a=i0EeH86SAAAA:8 a=EhUaX_21JS3xO1apcO0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cQPPKAXgyycSBL8etih5:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: czipkMs664HY5AeYnVvVrDwe5zPU_9qr X-Proofpoint-ORIG-GUID: czipkMs664HY5AeYnVvVrDwe5zPU_9qr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzE2MDE3MiBTYWx0ZWRfX6hvcgWIF4TI5 /N52L8RjH6i+hZhafaPsMP/A9AfIcc02f6Y7LXNphTVswyi1+x5ePwwbdhiDf3F2zxrfGZHJf9q yctXbCn/DISIQCYMqcPFc6QmUg8oTyUewdoX3oPO7PoXWV1zPmikeg+s68wqkRtA9eEKLuwqdDP jjpgj0WOWw94h7EE7zwNw7neGxSfGUUur1Rn23tFDPcfcBvOACGTUIqU2pbkXN9XKhWGh1q1kqP sWpddGGZ+W9Ahc6ldM2A49CNtydpjW9v0yvFcYC3CunVHSJPDvZPCs28LRmHx8SFWHz0fEe28Rm P72bx64jh+6FJLdBXIrqLQeFBaqv/vb9GHfeNiX0Jt+tTTbDKWxNRmDltNtjrU1QsxiTbKKdhcC iVVOUOKAEKwqLrM4Gle0HlyT9TPQ/zj3SzYiqXHAjahrXQACX6VkanMSVUqJa8qlS29e28ZkCrc l1Otb2FDrQChmYQgM1g== On 1/25/26 7:41PM, Li Lingfeng via Jfs-discussion wrote: > Ping again... > > Thanks > > 在 2025/12/22 20:05, Li Lingfeng 写道: >> Friendly ping... This is finally tested and applied. Thanks for your patience, Shaggy >> >> Thanks >> >> 在 2025/11/29 9:15, Li Lingfeng 写道: >>> Hi Yun, >>> >>> 在 2025/11/28 23:51, Yun Zhou 写道: >>>> Add check_dmapctl() to validate dmapctl structure integrity, >>>> focusing on >>>> preventing invalid operations caused by on-disk corruption. >>>> >>>> Key checks: >>>>   - nleafs bounded by [0, LPERCTL] (maximum leaf nodes per dmapctl). >>>>   - l2nleafs bounded by [0, L2LPERCTL] and consistent with nleafs >>>>     (nleafs must be 2^l2nleafs). >>>>   - leafidx must be exactly CTLLEAFIND (expected leaf index position). >>>>   - height bounded by [0, L2LPERCTL >> 1] (valid tree height range). >>>>   - budmin validity: NOFREE only if nleafs=0; otherwise >= BUDMIN. >>>>   - Leaf nodes fit within stree array (leafidx + nleafs <= >>>> CTLTREESIZE). >>>>   - Leaf node values are either non-negative or NOFREE. >>>> >>>> Invoked in dbAllocAG(), dbFindCtl(), dbAdjCtl() and dbExtendFS() when >>>> accessing dmapctl pages, catching corruption early before dmap >>>> operations >>>> trigger invalid memory access or logic errors. >>>> >>>> This fixes the following UBSAN warning. >>>> >>>> [58245.668090][T14017] ------------[ cut here ]------------ >>>> [58245.668103][T14017] UBSAN: shift-out-of-bounds in fs/jfs/ >>>> jfs_dmap.c:2641:11 >>>> [58245.668119][T14017] shift exponent 110 is too large for 32-bit >>>> type 'int' >>>> [58245.668137][T14017] CPU: 0 UID: 0 PID: 14017 Comm: >>>> 4c1966e88c28fa9 Tainted: G            E 6.18.0-rc4-00253- >>>> g21ce5d4ba045-dirty #124 PREEMPT_{RT,(full)} >>>> [58245.668174][T14017] Tainted: [E]=UNSIGNED_MODULE >>>> [58245.668176][T14017] Hardware name: QEMU Ubuntu 25.04 PC (i440FX + >>>> PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 >>>> [58245.668184][T14017] Call Trace: >>>> [58245.668200][T14017]  >>>> [58245.668208][T14017]  dump_stack_lvl+0x189/0x250 >>>> [58245.668288][T14017]  ? __pfx_dump_stack_lvl+0x10/0x10 >>>> [58245.668301][T14017]  ? __pfx__printk+0x10/0x10 >>>> [58245.668315][T14017]  ? lock_metapage+0x303/0x400 [jfs] >>>> [58245.668406][T14017]  ubsan_epilogue+0xa/0x40 >>>> [58245.668422][T14017] __ubsan_handle_shift_out_of_bounds+0x386/0x410 >>>> [58245.668462][T14017]  dbSplit+0x1f8/0x200 [jfs] >>>> [58245.668543][T14017]  dbAdjCtl+0x34c/0xa20 [jfs] >>>> [58245.668628][T14017]  dbAllocNear+0x2ee/0x3d0 [jfs] >>>> [58245.668710][T14017]  dbAlloc+0x933/0xba0 [jfs] >>>> [58245.668797][T14017]  ea_write+0x374/0xdd0 [jfs] >>>> [58245.668888][T14017]  ? __pfx_ea_write+0x10/0x10 [jfs] >>>> [58245.668966][T14017]  ? __jfs_setxattr+0x76e/0x1120 [jfs] >>>> [58245.669046][T14017]  __jfs_setxattr+0xa01/0x1120 [jfs] >>>> [58245.669135][T14017]  ? __pfx___jfs_setxattr+0x10/0x10 [jfs] >>>> [58245.669216][T14017]  ? mutex_lock_nested+0x154/0x1d0 >>>> [58245.669252][T14017]  ? __jfs_xattr_set+0xb9/0x170 [jfs] >>>> [58245.669333][T14017]  __jfs_xattr_set+0xda/0x170 [jfs] >>>> [58245.669430][T14017]  ? __pfx___jfs_xattr_set+0x10/0x10 [jfs] >>>> [58245.669509][T14017]  ? xattr_full_name+0x6f/0x90 >>>> [58245.669546][T14017]  ? jfs_xattr_set+0x33/0x60 [jfs] >>>> [58245.669636][T14017]  ? __pfx_jfs_xattr_set+0x10/0x10 [jfs] >>>> [58245.669726][T14017]  __vfs_setxattr+0x43c/0x480 >>>> [58245.669743][T14017]  __vfs_setxattr_noperm+0x12d/0x660 >>>> [58245.669756][T14017]  vfs_setxattr+0x16b/0x2f0 >>>> [58245.669768][T14017]  ? __pfx_vfs_setxattr+0x10/0x10 >>>> [58245.669782][T14017]  filename_setxattr+0x274/0x600 >>>> [58245.669795][T14017]  ? __pfx_filename_setxattr+0x10/0x10 >>>> [58245.669806][T14017]  ? getname_flags+0x1e5/0x540 >>>> [58245.669829][T14017]  path_setxattrat+0x364/0x3a0 >>>> [58245.669840][T14017]  ? __pfx_path_setxattrat+0x10/0x10 >>>> [58245.669859][T14017]  ? __se_sys_chdir+0x1b9/0x280 >>>> [58245.669876][T14017]  __x64_sys_lsetxattr+0xbf/0xe0 >>>> [58245.669888][T14017]  do_syscall_64+0xfa/0xfa0 >>>> [58245.669901][T14017]  ? lockdep_hardirqs_on+0x9c/0x150 >>>> [58245.669913][T14017]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f >>>> [58245.669927][T14017]  ? exc_page_fault+0xab/0x100 >>>> [58245.669937][T14017] entry_SYSCALL_64_after_hwframe+0x77/0x7f >>>> >>>> Reported-by: syzbot+4c1966e88c28fa96e053@syzkaller.appspotmail.com >>>> Signed-off-by: Yun Zhou >>>> --- >>>>   fs/jfs/jfs_dmap.c | 113 ++++++++++++++++++++++++++++++++++++++++++ >>>> ++-- >>>>   1 file changed, 110 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c >>>> index cdfa699cd7c8..3f1ed82baa3d 100644 >>>> --- a/fs/jfs/jfs_dmap.c >>>> +++ b/fs/jfs/jfs_dmap.c >>>> @@ -133,6 +133,92 @@ static const s8 budtab[256] = { >>>>       2, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1 >>>>   }; >>>>   +/* >>>> + * check_dmapctl - Validate integrity of a dmapctl structure >>>> + * @dcp: Pointer to the dmapctl structure to check >>>> + * >>>> + * Return: true if valid, false if corrupted >>>> + */ >>>> +static bool check_dmapctl(struct dmapctl *dcp) >>>> +{ >>>> +    s8 budmin = dcp->budmin; >>>> +    u32 nleafs, l2nleafs, leafidx, height; >>>> +    int i; >>>> + >>>> +    nleafs = le32_to_cpu(dcp->nleafs); >>>> +    /* Check basic field ranges */ >>>> +    if (unlikely(nleafs > LPERCTL)) { >>>> +        jfs_err("dmapctl: invalid nleafs %u (max %u)", >>>> +            nleafs, LPERCTL); >>>> +        return false; >>>> +    } >>>> + >>>> +    l2nleafs = le32_to_cpu(dcp->l2nleafs); >>>> +    if (unlikely(l2nleafs > L2LPERCTL)) { >>>> +        jfs_err("dmapctl: invalid l2nleafs %u (max %u)", >>>> +            l2nleafs, L2LPERCTL); >>>> +        return false; >>>> +    } >>>> + >>>> +    /* Verify nleafs matches l2nleafs (must be power of two) */ >>>> +    if (unlikely((1U << l2nleafs) != nleafs)) { >>>> +        jfs_err("dmapctl: nleafs %u != 2^%u", >>>> +            nleafs, l2nleafs); >>>> +        return false; >>>> +    } >>>> + >>>> +    leafidx = le32_to_cpu(dcp->leafidx); >>>> +    /* Check leaf index matches expected position */ >>>> +    if (unlikely(leafidx != CTLLEAFIND)) { >>>> +        jfs_err("dmapctl: invalid leafidx %u (expected %u)", >>>> +            leafidx, CTLLEAFIND); >>>> +        return false; >>>> +    } >>>> + >>>> +    height = le32_to_cpu(dcp->height); >>>> +    /* Check tree height is within valid range */ >>>> +    if (unlikely(height > (L2LPERCTL >> 1))) { >>>> +        jfs_err("dmapctl: invalid height %u (max %u)", >>>> +            height, L2LPERCTL >> 1); >>>> +        return false; >>>> +    } >>>> + >>>> +    /* Check budmin is valid (cannot be NOFREE for non-empty tree) */ >>>> +    if (budmin == NOFREE) { >>>> +        if (unlikely(nleafs > 0)) { >>>> +            jfs_err("dmapctl: budmin is NOFREE but nleafs %u", >>>> +                nleafs); >>>> +            return false; >>>> +        } >>>> +    } else if (unlikely(budmin < BUDMIN)) { >>>> +        jfs_err("dmapctl: invalid budmin %d (min %d)", >>>> +            budmin, BUDMIN); >>>> +        return false; >>>> +    } >>>> + >>>> +    /* Check leaf nodes fit within stree array */ >>>> +    if (unlikely(leafidx + nleafs > CTLTREESIZE)) { >>>> +        jfs_err("dmapctl: leaf range exceeds stree size (end %u > >>>> %u)", >>>> +            leafidx + nleafs, CTLTREESIZE); >>>> +        return false; >>>> +    } >>>> + >>>> +    /* Check leaf nodes have valid values */ >>>> +    for (i = leafidx; i < leafidx + nleafs; i++) { >>>> +        s8 val = dcp->stree[i]; >>>> +        if (unlikely(val < NOFREE)) { >>>> +            jfs_err("dmapctl: invalid leaf value %d at index %d", >>>> +                    val, i); >>>> +            return false; >>>> +        } else if (unlikely(val > 31)) { >>>> +            jfs_err("dmapctl: leaf value %d too large at index %d", >>>> val, i); >>>> +            return false; >>>> +        } >>>> +    } >>>> + >>>> +    return true; >>>> +} >>>> + >>>>   /* >>>>    * NAME:    dbMount() >>>>    * >>>> @@ -1372,7 +1458,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 >>>> nblocks, int l2nb, s64 * results) >>>>       dcp = (struct dmapctl *) mp->data; >>>>       budmin = dcp->budmin; >>>>   -    if (dcp->leafidx != cpu_to_le32(CTLLEAFIND)) { >>>> +    if (unlikely(!check_dmapctl(dcp))) { >>>>           jfs_error(bmp->db_ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>>           release_metapage(mp); >>>>           return -EIO; >>>> @@ -1702,7 +1788,7 @@ static int dbFindCtl(struct bmap * bmp, int >>>> l2nb, int level, s64 * blkno) >>>>           dcp = (struct dmapctl *) mp->data; >>>>           budmin = dcp->budmin; >>>>   -        if (dcp->leafidx != cpu_to_le32(CTLLEAFIND)) { >>>> +        if (unlikely(!check_dmapctl(dcp))) { >>>>               jfs_error(bmp->db_ipbmap->i_sb, >>>>                     "Corrupt dmapctl page\n"); >>>>               release_metapage(mp); >>>> @@ -2485,7 +2571,7 @@ dbAdjCtl(struct bmap * bmp, s64 blkno, int >>>> newval, int alloc, int level) >>>>           return -EIO; >>>>       dcp = (struct dmapctl *) mp->data; >>>>   -    if (dcp->leafidx != cpu_to_le32(CTLLEAFIND)) { >>>> +    if (unlikely(!check_dmapctl(dcp))) { >>>>           jfs_error(bmp->db_ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>>           release_metapage(mp); >>>>           return -EIO; >>>> @@ -3454,6 +3540,11 @@ int dbExtendFS(struct inode *ipbmap, s64 >>>> blkno,    s64 nblocks) >>>>           return -EIO; >>>>       } >>>>       l2dcp = (struct dmapctl *) l2mp->data; >>>> +    if (unlikely(!check_dmapctl(l2dcp))) { >>>> +        jfs_error(ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>> +        release_metapage(l2mp); >>>> +        return -EIO; >>>> +    } >>>>         /* compute start L1 */ >>>>       k = blkno >> L2MAXL1SIZE; >>>> @@ -3471,6 +3562,10 @@ int dbExtendFS(struct inode *ipbmap, s64 >>>> blkno,    s64 nblocks) >>>>               if (l1mp == NULL) >>>>                   goto errout; >>>>               l1dcp = (struct dmapctl *) l1mp->data; >>>> +            if (unlikely(!check_dmapctl(l1dcp))) { >>>> +                jfs_error(ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>> +                goto errout; >>>> +            } >>>>                 /* compute start L0 */ >>>>               j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; >>>> @@ -3484,6 +3579,10 @@ int dbExtendFS(struct inode *ipbmap, s64 >>>> blkno,    s64 nblocks) >>>>                   goto errout; >>>>                 l1dcp = (struct dmapctl *) l1mp->data; >>>> +            if (unlikely(!check_dmapctl(l1dcp))) { >>>> +                jfs_error(ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>> +                goto errout; >>>> +            } >>>>                 /* compute start L0 */ >>>>               j = 0; >>>> @@ -3503,6 +3602,10 @@ int dbExtendFS(struct inode *ipbmap, s64 >>>> blkno,    s64 nblocks) >>>>                   if (l0mp == NULL) >>>>                       goto errout; >>>>                   l0dcp = (struct dmapctl *) l0mp->data; >>>> +                if (unlikely(!check_dmapctl(l0dcp))) { >>>> +                    jfs_error(ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>> +                    goto errout; >>>> +                } >>>>                     /* compute start dmap */ >>>>                   i = (blkno & (MAXL0SIZE - 1)) >> >>>> @@ -3518,6 +3621,10 @@ int dbExtendFS(struct inode *ipbmap, s64 >>>> blkno,    s64 nblocks) >>>>                       goto errout; >>>>                     l0dcp = (struct dmapctl *) l0mp->data; >>>> +                if (unlikely(!check_dmapctl(l0dcp))) { >>>> +                    jfs_error(ipbmap->i_sb, "Corrupt dmapctl page\n"); >>>> +                    goto errout; >>>> +                } >>>>                     /* compute start dmap */ >>>>                   i = 0; >>> >>> Thank you for the patch. >>> It also resolves the issue described in the link[1]. >>> [1] https://lore.kernel.org/all/c201cbe0-5f52-4572-a04c- >>> dc165eccff95@huawei.com/ >>> >>> Tested-by: Li Lingfeng >>> > > > _______________________________________________ > Jfs-discussion mailing list > Jfs-discussion@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jfs-discussion