From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AAB3243254 for ; Tue, 31 Oct 2023 15:51:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 012E340DDE; Tue, 31 Oct 2023 15:51:31 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2040.outbound.protection.outlook.com [40.107.220.40]) by mails.dpdk.org (Postfix) with ESMTP id 9B64840284; Tue, 31 Oct 2023 15:51:28 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MkkM0Gpx4GLDhD7oN0TWTtmU7Sf9po+/lfP2CBnbZc5pdAmXH3gwu/gKssuYM8mzZvpsBrLZhiuZvfiB7qUmXa6IlMvDntN6wgMqba4cxmryPpSy80TPE8tNxL/Ojskw16tO4GVtQHHF8fldD9BSYc/Jk5pbNcSET948BfBUR3Bjik4iYE4nd9+Vgjt+7jpDUP1KHC8sSgRwlJSRy7OzLw6UZA8J4zpozWILkJLh2bvXJPRfEB2PGiEZOVnylSCsnOjDARG4DgNf0f7lDTJQHtMYy70320lueq/Ul0jmQE4XnCkqVjlM5BS5LDbbkpbM+o73xgqMe6pAJV1omoxJ5A== 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=ms71fzeAsJNnIShHHR0rFgHOb2YvSfsin7wkZMq5/zI=; b=LeRkgIwRXH+/WsdBVZJ7nbPinGIF/r5pomnK3MmCCIO5ykCziLqCbyX3NwVFR49cMnHC8mMrKWDA2XHcXaCU6A1kfpXthgltYp9IYOzxNef5Kiq+ei9dHGiqnRGz9t6bfUzhIiql0gQd7LpV0CosiyfHX/RDtpHSJjrb1LyMA5CwPZ0D6iC6yG+CW1k6+2F9NdaLPIhZgPHVjuwSCxmSUHK4cZt5+itLzlbdpI9K6gpk2JlDzMvQeDSBU3n002uEnIk5qa7ovOs4DyOIT+E9oXwg+YpPZhVH9V8Ya3NB10iUHUv0aIrCod8VJxu47mx4uRxuw7pqYvB+F9E6sehn2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ms71fzeAsJNnIShHHR0rFgHOb2YvSfsin7wkZMq5/zI=; b=eD8szWeo1AB2dyUFER47jU/0ItPo7Wu/bgIAHR0WdUGfzZX5eK/VIWdsdEk+RU27mwYRhTcuM6QTLSa0UNufD2wvj3SRyoeA/7vmxcbjkEAuHL5AGhHd1ai8xqYbd10fcQzq8pX6vPABwgsYkg0qmrVE844rJ4nw2c+nKeZF7m8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by BL1PR12MB5221.namprd12.prod.outlook.com (2603:10b6:208:30b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.29; Tue, 31 Oct 2023 14:51:25 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::2569:edb2:670f:816f]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::2569:edb2:670f:816f%6]) with mapi id 15.20.6933.029; Tue, 31 Oct 2023 14:51:25 +0000 Message-ID: <7e63b131-ba4a-42af-8654-2bef7445b01b@amd.com> Date: Tue, 31 Oct 2023 14:51:19 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] net/bonding: fix illegal memory accesses Content-Language: en-US To: Chaoyong He , dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , danielx.t.mrzyglod@intel.com, stable@dpdk.org, Peng Zhang References: <20231010062304.205933-1-chaoyong.he@corigine.com> <20231010062304.205933-3-chaoyong.he@corigine.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: <20231010062304.205933-3-chaoyong.he@corigine.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0011.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::17) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|BL1PR12MB5221:EE_ X-MS-Office365-Filtering-Correlation-Id: 84fff861-5c24-4bbc-29d3-08dbda20dad4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Vgwd1SjZ9jw4Emtqa2Yt7cyuNkwCftno3phgDYLppKwkQnLK2iyl4DVQ/TZaTdB9geTvTLY8vL/qKms+Gvs/7rosUzxvWMbfYP16lOH2Zx00Khu9WMGTaXkpslysPjDQwxlLT0WW0l9jfgDXR/VejIGHGoRMsY6rMihOq5kdfG5KQBwOM6zPfVM7UWgtZiIgFFzVBWJfflQ9i2CgrPS9/BSTKV7MRs7JHJeS0wvKFsim9T7DUXCh1Wx9/UlHIndxl+jkmLFTZL3iaoEiHOiNFznxyzb4HyycuHzfCQjki+vk2arLyx6on2mYmj+Myb592HTZptJ9g1iFBMYxCVvd0ZBhxN1LbdUdFmDaB55Sd4eJ7k5BOnLhpp8dz86OpaV8DM4LMPj5hZ6IGF5FKqs9VU+tkouEg4cP+zRHiV5ZO8kcxFb3pL3MRw8KbHJxuGHIYlxazCpk4O695Xjz/Jg4Zks1wIUXBW0nPP8VsWBjitofMMHg3hXJfMMJl1fo03F3mU4pX/cTPfRdU5aZDVUiaQXK+WJS4ocvlj9YHIOcPRUzn9bhN7vU5JOmEDNL+vlk7V2CALbgCJemRGzZrc79hnLszA4k2OTnNS8uiUyaFxv51IuJr0EeMbF+vduiqRVaTUMyz++9krTPgsotEfi4ag== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376002)(346002)(366004)(39860400002)(396003)(136003)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(41300700001)(44832011)(53546011)(6486002)(478600001)(6506007)(6666004)(4326008)(8676002)(8936002)(2906002)(5660300002)(66946007)(66556008)(66476007)(54906003)(26005)(316002)(86362001)(31696002)(38100700002)(6512007)(2616005)(31686004)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aENYYmVzZlhaMVI3VU41SSs3aU13Q3RIOWVQYm5Qb0MwcGNNZ3gwNWN3VGJt?= =?utf-8?B?SlZxRDdSUytTbk1id2h3eEFJV1VVNkc5UlZBOHpoOCt5RHhhN1lIQm94Y0VL?= =?utf-8?B?V2pjTHNVd1JEVlFmenFQSi91Vm8zSVkxc3VWN2czMFU0YTVxY1dtSk1NWUJu?= =?utf-8?B?Q0o0c3NWVFR0ZXNYaDc5YnJQaTNFVkd2RTRVN3J1L1JxaGFlSGRQa2FLdXBT?= =?utf-8?B?WDhRVzF0aUpiRVY1NFVDczE2ZUpqVkVzTDFyN1hMOEpVQy91WEFHSVlRZHlw?= =?utf-8?B?VGVxZXNzSnFPWGVMV25MSXZ0S1ZtNWJCRDByMCtSM3VpVHJQbkJCOU5Ba0pB?= =?utf-8?B?d0lJU3hVM3BlcGdZRjZjbkYzNHVwQXlKdjVZdGExNk9kVm1jSFBKRHBFOWdQ?= =?utf-8?B?Rld5bG44MVh4L2U5K0VzTnFqSXlLenMvdU1naHl0N0JTeER2UGhhQW9uZndF?= =?utf-8?B?c0I0SGxKUU5pRjFxV2tId3RUV0o0RGRpYVM2dHhVTVJWeEpBSjM4ZTVBdFdx?= =?utf-8?B?RlV0Vit2N0Z1MjBkQnhCdUlOR09pcTl3T2RJSGhBZ2JQZWdmN2doOVlod3hI?= =?utf-8?B?dEhVUFVvN3RFbEYzblIweUhhc0pSQWNYTUphWEdrYVpOTE9ITWQ3VGcrTTNw?= =?utf-8?B?RWJSSGlvbGl0d1BtMFdLUFhlZWYrWVFML0dicTBEUldZSWNWdzVLakFlbHNH?= =?utf-8?B?N3Q3bHVDTmxPN2VJU1ZiV25tbnBMMVRUSmwrbHJwU3U1S3UzaUNKK2pmSDE0?= =?utf-8?B?YzgvK0JNY3loNHpVN2JnRzRaRFAwdmRpY0J3Y2FjWXc5TXFPVmVidkxiSlAy?= =?utf-8?B?Qnc2bk84MlU4Rng4SUtHZUJOWU1vdlFjdlUvVzZmUTBMc1krUklsa0t3TTdm?= =?utf-8?B?YUZQcUJJaGw1L2NGdXNQamFxS2Fpdko3ZGNMVVdmVnZuSzUwMzBUNllHa0ky?= =?utf-8?B?TmVzZ25ENzZ6ZlpBTFUyb2w2TnZGb2JzNjRJMllNV3EyM2NKdkNjV252MlNQ?= =?utf-8?B?MFF2V1VZL1JBa2J6NHEvT1FRLzljb2lydW00TEJlZXNjNURiS1ZHR05ZM3Q5?= =?utf-8?B?Yk5xazk4a1FubWJ0c2lFcm9IRHlCbUpGWE9OeDF5N2MvUk5UWCtUL21CM1FC?= =?utf-8?B?MFpCUEcwMis2L3FoWlR1WTBEQTZBOCsvZW1sM1NZN0xHeXU4eng5aFF3RERo?= =?utf-8?B?cGFuMEtsNDg3MEM0ZkdYMEoxMytoVi9RRU5yM3VYc3NENGVMWXd3c2lJaURq?= =?utf-8?B?MnRWK09PVEU1MCtXT01xV3VUVzI4dS9xYWJ4NjZzTmRBbDYvVDk3TEJ2RWgw?= =?utf-8?B?U1cxaUtvRGFzZ01vekduOXJKamltZmt5QTUxZGZYbkxUNUZnblB5anhIYTFW?= =?utf-8?B?aEVseFdrb0QrSy9qdXZrdVBZUDlUQUEwcmFBM29sMDQyUWxQakplSXIzTmRK?= =?utf-8?B?anlIMEd5SmY5cU1OanFpYzFQeFd6elBpR0lacnAwS0hCMG84dThYTnBuZjBm?= =?utf-8?B?a1NiQlQyUTdKRnplQ1dHN0dtL2FIbDVqcTBualp1aFIzUnIyK3pER214YU9h?= =?utf-8?B?NkdSYXMybm9CUlVUYkt3anNnNFRWbDVUQmFnbmEvUGhMaEdjaXZoeTdlaUEx?= =?utf-8?B?akUzK0JzYmZmRllBcTYvTExHMmFwQ1R3UTRZSkJFMGdidmNmUkM1ZnZnT2Fj?= =?utf-8?B?M3l0a29TbkRFTHNLQm0zelZhcUlVYXFta0xpWHBWQ0RMQkNWK2ZvOFpkUWlL?= =?utf-8?B?R01iemVRSkxIUENjcEFDam1Uc1ovMjV0TXRYL0hFcHdxc1ExMWtDaUJTUWF2?= =?utf-8?B?dnh3bUlNbmcxRFdZWlR3bWxqVzJOZEswdk03MnIwaG5xVUpCc2xlNjF1UGRE?= =?utf-8?B?R3dLS09CTkdoZ1hqcFUyY3NxbjJYYjR3dkUyODRaQ1dmTElkb0h0d1dlWDFJ?= =?utf-8?B?YXErSms5WjVzUUFhRmVOZVVkZGo1dXRhREhiUlhyb2ZkakEwUjFqTHdrTzhp?= =?utf-8?B?SG92dXAreW40eENLVUFCOTNueGFhSjZqQWRmR0l0QWRZSUhJZHcwWHM5Vldy?= =?utf-8?B?M2JLT01hYXRsdlBIU1BUQnFMMVB3OEJwazB6NEZIdzhBRHV4RjNQaVQ0Umdn?= =?utf-8?Q?u7ZY=3D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84fff861-5c24-4bbc-29d3-08dbda20dad4 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2023 14:51:25.1194 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AWTaHDZIcxvDG6TJUbipQSflxq/uSSIhBxegY4etUIUPfxbpE3BrMY1NeJTVIKvi X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5221 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org On 10/10/2023 7:23 AM, Chaoyong He wrote: > From: Long Wu > > CI found that overrunning array of 32 2-byte elements at > element index 65535 (byte offset 131071) by dereferencing > pointer "members + agg_new_idx". > > Coverity issue: 403099 > Fixes: 6d72657ce379 ("net/bonding: add other aggregator modes") > Cc: danielx.t.mrzyglod@intel.com > Cc: stable@dpdk.org > > Signed-off-by: Long Wu > Reviewed-by: Chaoyong He > Reviewed-by: Peng Zhang > --- > drivers/net/bonding/rte_eth_bond_8023ad.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c > index 677067870f..0be33f61e3 100644 > --- a/drivers/net/bonding/rte_eth_bond_8023ad.c > +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c > @@ -732,10 +732,14 @@ selection_logic(struct bond_dev_private *internals, uint16_t member_id) > switch (internals->mode4.agg_selection) { > case AGG_COUNT: > agg_new_idx = max_index(agg_count, members_count); > + if (agg_new_idx >= members_count) > + agg_new_idx = default_member; > new_agg_id = members[agg_new_idx]; > Overrun may happen when 'max_index()' returns error, '-1', which becomes 'UINT16_MAX' as function returns 'uint16_t'. And 'max_index()' returns error only if "members_count <= 0", but as far as I can see 'members_count' can't be "<= 0" anyway. What do you think to remove check in the 'max_index()', or add a check in 'selection_logic()' for 'members_count == 0', but not sure what to do 'max_index()'in this case, so updating 'max_index()' is simpler.