From patchwork Sun Feb 20 17:54:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niels Dossche X-Patchwork-Id: 12752796 X-Patchwork-Delegate: kuba@kernel.org 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C4F8C433EF for ; Sun, 20 Feb 2022 17:55:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244470AbiBTRzZ (ORCPT ); Sun, 20 Feb 2022 12:55:25 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:35406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244402AbiBTRzK (ORCPT ); Sun, 20 Feb 2022 12:55:10 -0500 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2114.outbound.protection.outlook.com [40.107.20.114]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 469F8527FF; Sun, 20 Feb 2022 09:54:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H3bbNcM8QxvvXg4yroduJrbo53+A+0lzAvZMGzWyp9u3SOCkitRMZ/rLockgkzY5J3Ukj1VsuY0w0vZAlb7oLGllixyry0WlsWIH3UfV8tYq+EsKcJCwJfX4w1dVo1s+qLJn7xJPSgSlKa8RC90V/Cad5Zv5KntETACkgVNs2zxe/BbiCaVQtJHywath33U2amk7jDaAiLetHvEP5+u2sHjT++MsxCuY/9LwzFn+Ke4wX2s2HGTgTrVBz2rE9tJZJUlVg3BkiLuNBdmd7gs1NK6jOD4QGddlvyKeGAMoCFnmWncm8aXyB8Ce+g7UmHxZOZkx9X5+mXjq9k+hL3ocHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=ZU6NZpVKzpwiErg2MN6PkgdVRBP096r5RbZEXAX6foo=; b=AnSqZkWfdT1QQEBMfjT8aHULey1gVBYaIEbBGLmzXryfOYcLtpB05TLn/p73GS9A763bI5T3EeqWVCceqvVukPiK4VJoDOT9MUgJ7yXDXNL3spXoZCRQBGG0o+T6464DP+1sVz+ZucIHY7OPiV8t8ZcfJ4vs+Jy0xichSVvlN0s7sXQ7XTn68/xPiNsBtOd7mcsGoJEcTX2ddFwiTORIVsY+CebZRTP+XQwZppDT0Yi28DJyo5Geoe93NumNT6bccwyqchLFYUFOP6dgaSM8W9RRNOy/+vFtyUxUnpimHS7enXr5+q5UHiINg0bl36Vwhj023HTCr99t1LsdC3HRqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ugent.be; dmarc=pass action=none header.from=ugent.be; dkim=pass header.d=ugent.be; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ugent.be; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZU6NZpVKzpwiErg2MN6PkgdVRBP096r5RbZEXAX6foo=; b=CJ1M4VsGA7Q2uPQiGuTyGL/MqfcdIsOYigms60yEqM6R8QpeLEDexQDpSe+l3Tlsgl3clmA/v5tufy/Sy4qoXomtkZa5F6d2SLldrPqmi+5ZIHiQV0cphJnilMgxnWD+esEkOJTpxicv8/YrVoIDnxBLNszt2V/yfS7S8QSky1Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ugent.be; Received: from AM0PR09MB2324.eurprd09.prod.outlook.com (2603:10a6:208:d9::26) by VI1PR09MB3760.eurprd09.prod.outlook.com (2603:10a6:803:132::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Sun, 20 Feb 2022 17:54:44 +0000 Received: from AM0PR09MB2324.eurprd09.prod.outlook.com ([fe80::fc49:e396:8dd8:5cb9]) by AM0PR09MB2324.eurprd09.prod.outlook.com ([fe80::fc49:e396:8dd8:5cb9%5]) with mapi id 15.20.4995.026; Sun, 20 Feb 2022 17:54:43 +0000 Message-ID: <5599cc3b-8925-4cfd-f035-ae3b87e821a3@ugent.be> Date: Sun, 20 Feb 2022 18:54:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Content-Language: en-US To: "David S. Miller" , Hideaki YOSHIFUJI , David Ahern Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org From: Niels Dossche Subject: [PATCH] ipv6: prevent a possible race condition with lifetimes X-ClientProxiedBy: PAYP264CA0004.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:11e::9) To AM0PR09MB2324.eurprd09.prod.outlook.com (2603:10a6:208:d9::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6e1e11e7-36a2-4096-0343-08d9f49a1343 X-MS-TrafficTypeDiagnostic: VI1PR09MB3760:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QIH8HrAaggv8QQbbB9ZQARJolsNaHCshKMg719eSgW8UJHUytjRp2OkgmttYg88JG0M8Y2Vz+u+ujmHNrfWOs/O1h2Jp56qOui8oB2P2YtE4ZpG3bPFpwADNsmvxh5N0tQEPBwDK1ftqpAIcHitXkCwUkXPca/VAw4WcpFVYVo+MFuc8H2sB1zhy2T4ikB7D9pAC25cwCSYVYEWPfzKqKhnnZU+SLMY+FVMqkFZ5eBM7UQUDj51aV59ZUug/dizoCT31pvw7hmcenr4ztxm9/hcc6wd/jSgxxN2kUDtb4hvmppOjodCck1gbiCruNJpwzmO1055z7qAtBdqvvBZyAcQIx8BUEQQgYELHgyc7CEDzQCrOz9gSdSD0dFBkTo15g7x2imDUicc4OrECDXLRWHULsc/uMMeg4GW7hi1S13xOas81NPBbPHA4TZ0mgjHFG5jgLamGL6yklOXbdlW01IXf5GWznKREt4Lq7h3EbbZMEswP/EQhTAhKqKTTnfsRy2vFIsqs1tTpngOWz9QsAoQ46KMj6HFMKdi3db0vgQiRk6c5SyfRRiIAX+ktBHlZVqRIs6j8QJ1akF15y8aDUqs7IDy8vKWqjLDl5cz45OPPAOc6vXlD2Bh1JRpUN6DWhhYs4C9gqwD46jKI9gyfecnWby0N5Og68hqfIFySwuROkxZwnZ9YHDhqBB28J7Uvk70ZV45ZYm3UOOwyZLQiZwicm4sdzXznpM4swvAgbCA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR09MB2324.eurprd09.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(8936002)(31696002)(110136005)(5660300002)(786003)(316002)(86362001)(508600001)(66946007)(8676002)(4326008)(6506007)(66476007)(66556008)(2616005)(44832011)(186003)(26005)(38100700002)(2906002)(36756003)(83380400001)(31686004)(6486002)(6512007)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ZPqRpFRbCqNdkNEcSGSO7GrO6kB7?= =?utf-8?q?nsS5cQ8ILBw2bf7nJpr0YoB8g4WqFDVFMFC6SPflCJ5E6KgB4f84lv4E+/xqHNgdx?= =?utf-8?q?kSM2bEIPLJb0cTcNMuGg8x1E+y++aW2n5IZELe2O77jM+az+lK14k/A9stZDjy3Pp?= =?utf-8?q?r94mRicdbTjtkcbhIJdAoVaV4AO78uHOyXG2yeNYjJhZj8JpfjLzB+9AAND6POSz3?= =?utf-8?q?86cpgVzf/9M6bCT6wFViC2CewkpfGeRAjt/1MadceRDxh7rNAgC4Tf0cKVtOt19iu?= =?utf-8?q?dFSAzJxhtSOnkr2hBrBD/eACC6Q8peirA2FwkSt6sTiMsTAmkUnRsivOfbA94uMTT?= =?utf-8?q?8lsrAKhgqamunqaxIvGb9+nsZi1plyMltc2OTAZtUGHMSY6EUR2RgeuBsEdlEJzHm?= =?utf-8?q?fdcgZC5WnSHsj7kqx58MWrkz37kOaijY40n4tnlF1DdkAWQKy68M8UJz5b7QzFVfv?= =?utf-8?q?Zmj+lU7CkPDkpidLe3ScMJ7xxG5B45cE6TsXDfZUxEyXXjF33gNo2dfAsXKggoAax?= =?utf-8?q?iuASA8UoXxsPSdUUNq5n93Cj8ftM48AFxeDz48rLK4xpxXBINZk7OQtuo+rJV1bMv?= =?utf-8?q?h8hQlAWp5gvi4RS9J+OjUGnlqV+Rof7vD+kLkIEq15PTJQprlNDaUgsxdq/mtEslh?= =?utf-8?q?usQ+EmN7XGshEBXJBCz2Yu85ZeqSHo7Yr+ZpCbDlVUiyuKCi1cTbfVrxBr7lM2E2Y?= =?utf-8?q?Yv3WiCx3YQfhov9dUALmW8tLD8VfTuPFqNgFswiTxgr+q7QkIm22eyeWc6Pf5w7dm?= =?utf-8?q?XvD48badCcAKkfvnT+LwzBiy6/mHrLVPS4NnJX63I0PNKrLRmS2LlB/4QwHJ/vSmy?= =?utf-8?q?E/3rUjMiYnf9bkjgPU5tkxG9WjskYJOLPHUgIBqWbxeIZvR65LjEFDSiWiLuXe/PW?= =?utf-8?q?zcZpulQJsdy1YNtRW3GukMFfuV6XDot3wWJdL6+d8/ua+SSLNJCz7s94qNEBR8IDC?= =?utf-8?q?2voyfTinx/n6o+NdDvTlh1dyZQMtSJ2dXvYg/H97CbnzTlhF/AW/LrUP3C1MPCQz6?= =?utf-8?q?GDABD/0WfxaBNac/QTBTqTjKzR1ZXk87RN/OZMFAXzQOogpmYcEOu8ZU5mfQhbGms?= =?utf-8?q?0Uw8tNaqMsQbtUdog4PWNLyMrsssnzFzHOs1wuoRl5O8Bilfb1lVAduF12b0u3sR7?= =?utf-8?q?Cyu6vShk9WqhX0pH4kl7ZYTevx1NFxWv0XCHHYj3vNwSh71PpJ9ONsgM1/RIVTcf0?= =?utf-8?q?SOHewOWzWTY3DiGUzQrujRJTrJlkay+/v8c1xSWmdvB5075b+nQT+XR0EITrsr1rF?= =?utf-8?q?2J/99RdK8vtEAgVJMglzSim8e7yP5S9dj6pWV/Bucm0jlnxynps7Bu3lDT70NCBeR?= =?utf-8?q?Xrgtw7Rc2R1gL0p4dqIcwaVAHT4Xt3pJouoCNpO1i+9POTI0/lvqq2aY54wFtj6aU?= =?utf-8?q?wT0nlsBtRw1fpRV2AvhcPw0tREoxMgbpSQim7EzIigpaqBFPs8GzzXrpiUaSbOq2r?= =?utf-8?q?x8mpniDzWkAIsL69cas6e20sjNqvN5xPvG2Dh7jnEnSauwGYklhEHVQ/QmA0wfqmk?= =?utf-8?q?UfkDieNlhu0YxAwcmq0g2U/BpoXz6+/BEfR1u2c0Ago/h19Tevo7yYE=3D?= X-OriginatorOrg: ugent.be X-MS-Exchange-CrossTenant-Network-Message-Id: 6e1e11e7-36a2-4096-0343-08d9f49a1343 X-MS-Exchange-CrossTenant-AuthSource: AM0PR09MB2324.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2022 17:54:43.6654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d7811cde-ecef-496c-8f91-a1786241b99c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VaHK8WcnJ7HpIYTUm4FrJyXYoXImPmHVmWXgIZ9MNsWhUFm4kiZvJ+udmqUKAvgL8omJ+VP/Jam+HRTNvEToeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB3760 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org valid_lft, prefered_lft and tstamp are always accessed under the lock "lock" in other places. Reading these without taking the lock may result in inconsistencies regarding the calculation of the valid and preferred variables since decisions are taken on these fields for those variables. Signed-off-by: Niels Dossche Reviewed-by: David Ahern --- net/ipv6/addrconf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 3f23da8c0b10..6c8ab3e6e6fe 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -4998,6 +4998,7 @@ static int inet6_fill_ifaddr(struct sk_buff *skb, struct inet6_ifaddr *ifa, nla_put_s32(skb, IFA_TARGET_NETNSID, args->netnsid)) goto error; + spin_lock_bh(&ifa->lock); if (!((ifa->flags&IFA_F_PERMANENT) && (ifa->prefered_lft == INFINITY_LIFE_TIME))) { preferred = ifa->prefered_lft; @@ -5019,6 +5020,7 @@ static int inet6_fill_ifaddr(struct sk_buff *skb, struct inet6_ifaddr *ifa, preferred = INFINITY_LIFE_TIME; valid = INFINITY_LIFE_TIME; } + spin_unlock_bh(&ifa->lock); if (!ipv6_addr_any(&ifa->peer_addr)) { if (nla_put_in6_addr(skb, IFA_LOCAL, &ifa->addr) < 0 ||