From patchwork Thu Dec 16 18:40:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 105195 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1588FA0032; Thu, 16 Dec 2021 19:41:06 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 93C5A40143; Thu, 16 Dec 2021 19:41:05 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2046.outbound.protection.outlook.com [40.107.94.46]) by mails.dpdk.org (Postfix) with ESMTP id E563F4013F; Thu, 16 Dec 2021 19:41:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EfFgJBuOO5gidR1ztahZPXNKL5N4K0eejKxXqUUgYQnwe/+bhjmvR4xx6Iq5Lsm2Q5onMj9ADAabq08Jqbaxb1dm8tU+awwK8tn5CLJd9zkgo8k44t/yJBLMj0fbUsEPBKpl+vE/Uuw3yD2JSllMdvPJ/gNvKQa5LSfiULVPUVG3iUoJlDH5OETYtVB/AHAQCaRLai+ZdCADrzMzkcXXvLNfiGyA6SwbcC3s6rKa1G5n8aYhwilZwsW8Fd4tMqNC1Y3yLfyzxJUV1gGTMx0iAGNEEhPj2F7QHGpMac+XomVTXG/OOuiWm1uRapAhFFWonXq1hjZsc2envXeYjW9Ejw== 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=9EqN+3o5FqerurmvjGeeYwrlHOojad0LQpQ2yyW12AM=; b=SPgJOjqAciMoaaIUkLYb4rh5d0bnr4cvlq/NAzfjmEjomQOUtInoG9C9u2Yslhrwo+NVWNKtmqWtQ8hPbesNXpCqA20kZMQYB8ipYMAF48s+A7snme/2atpVog78Mk3Oq10d9JNwUz7iPoU1IU7XcuBBE9GvJd9dPncJW2b3WTHQNvLvMBDPWJ0CifCYHCQO2fuOAJYq8LiBsqCt/YGPk4AgtFfR98F1Em65nB0se58ARh7sd/xleZSD7G5QbkDXQHO4oac8G2MhUCUu0cap4+yxLdORaVT8IpPck2fFRCrbLaEg7WXBx1YDRduRoo8b5Mu6oZAloneu1yOlg9UCLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.235) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9EqN+3o5FqerurmvjGeeYwrlHOojad0LQpQ2yyW12AM=; b=TmIW5979Xrr97XHN0MFAgsy6dm7LjfE/srzKNdTZuEwyJAPAcK3cLAcol9JOvRPVEmr3bbH8Aood9/htLsACRr4/UBusG1Ei9HGyxDn+jjDHah/XajofEA+mtA8ulhQVyxmFgLVoNbCA8UHvt13PRwPUb6/KB8cOa0Da1O0H6Pz4DFCLru+6ixXpLEDpueI7Vtk3tUGmyRN4NBKWYiA5SSgxQUstIAsIhMoAInbUXPBYS6ZHhWrCYv0QkeOq4W3iWvt2n0UuNqrVA+nAgf77KVsYfkaG22hxRZSjZXj+a60rrkL9yC3ZUAGnMtwEkq1shmgFsvc2e4kdS3B7oezX+A== Received: from MW4PR04CA0193.namprd04.prod.outlook.com (2603:10b6:303:86::18) by MN2PR12MB3117.namprd12.prod.outlook.com (2603:10b6:208:d1::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.14; Thu, 16 Dec 2021 18:41:00 +0000 Received: from CO1NAM11FT027.eop-nam11.prod.protection.outlook.com (2603:10b6:303:86::4) by MW4PR04CA0193.outlook.office365.com (2603:10b6:303:86::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17 via Frontend Transport; Thu, 16 Dec 2021 18:41:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.235) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.235 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.235; helo=mail.nvidia.com; Received: from mail.nvidia.com (12.22.5.235) by CO1NAM11FT027.mail.protection.outlook.com (10.13.174.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4801.14 via Frontend Transport; Thu, 16 Dec 2021 18:40:59 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL107.nvidia.com (10.27.9.16) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 16 Dec 2021 18:40:59 +0000 Received: from nvidia.com (172.20.187.5) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.986.9; Thu, 16 Dec 2021 10:40:57 -0800 From: To: CC: Matan Azrad , Raslan Darawsheh , Viacheslav Ovsiienko , Michael Baum , Subject: [PATCH] common/mlx5: fix missing validation in devargs parsing Date: Thu, 16 Dec 2021 20:40:40 +0200 Message-ID: <20211216184040.819861-1-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a3acb0bf-722b-46b9-065a-08d9c0c39afb X-MS-TrafficTypeDiagnostic: MN2PR12MB3117:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bVmuekhLDG6lv5Kxs/ZXjp3YcdG6bdpPhz1/0jHBif7rdwpu11BHfhMj4tP0RvmBUUEHg2gOP++Ap+9yTGDIvm8pwANFZ6KTS/gL7wvTGWDNynP44YGKS12yKmY+1Q4vyL3746O0sxFi7CxN5np8uVMgrqIC/9kU3zW3z1VAEZnYI/gtOtrA5ru7Z9nxI+kjPz0YDsMfd0/4ijCmJ8Ksuny0XKicqIMBcpMgqZoV0vezTpdQ/h1NA24NXTQDPyyFk0T/MNsIRyfmYMp0EPPLNrOf5ji3zkjwhrKEsgKxyso74MUSRiFjtNf2rWe7ef+ZdAwediKCF2mvBm/iWGkEX1G0J31AsUDcFrDavdIjbHQ1iEhMeyByGEPD6uu3FP/WwXWQl19min+KidYa4HkNsvXaeWDoxGkNp3++Le92sYHjoNz5nX/jX9vRj2AO/0CiwEzBzaEpN4VUo6Tou7GeU9ZdGEHdMe2wgi78cu0Q+RIRw3B+saWiOZW01/b+kkLD3yNaYQeYu+QAQIi+/OG2hKzSJfy7FO/TDa3uA3AtPz0G54PE3UQ/ItYB9rn0Zvp7Z7HMQ3OFqDVfNu1m1eFVEWANAOCnpg2pPTfiP9vFn83bL+5IXbS3bVeCv6j5i3iFa0UF+BHtZ0PuaNi4v/Xlb1jZQc418EKH1v6z79mtXT+sVOfwBrcCbp/hv2oT2CzmXyYas4EoiqNRtwtVzEstIQelIjUe+TyrnC1KIzDS/3ybyRkL4J6JZ+dYFKhQg8QoVeJoiYZ9PW8So99bW3/0dxovZz+kfBvNIX2mZ7l5VrVvcM7/r050o9SrMMMTf3KcLnRem1ERFSFznyDCQpapnA== X-Forefront-Antispam-Report: CIP:12.22.5.235; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(40470700001)(83380400001)(47076005)(4326008)(8676002)(7696005)(8936002)(426003)(82310400004)(55016003)(86362001)(36756003)(6666004)(508600001)(316002)(40460700001)(5660300002)(356005)(2616005)(26005)(36860700001)(450100002)(16526019)(34020700004)(70206006)(81166007)(2876002)(6916009)(70586007)(186003)(6286002)(54906003)(336012)(1076003)(2906002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 18:40:59.9684 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a3acb0bf-722b-46b9-065a-08d9c0c39afb X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.235]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT027.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3117 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Michael Baum The rte_kvargs_parse function parses the arguments "key=value,key=value,..." string and return an allocated structure that contains a key/value list. It enables also to send a key without value and updates the values in the following ways: - "key=value,key,..." - value is updated as NULL. - "key=value,key=,..." - value is updated as "" (empty string). Mlx5 PMDs use this function to parse, but they don't support key without value. They send the value as an argument to strtol function. When strtol gets NULL as a parameter it cause a crash, when it gets "" (empty string) it returns 0. Adds a check that will prevent an argument in these formats, and returns an error for it. Fixes: 85209924039c4 ("common/mlx5: share memory related devargs") Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index f1650f94c6..76cfeafef8 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -111,6 +111,11 @@ mlx5_common_args_check_handler(const char *key, const char *val, void *opaque) struct mlx5_common_dev_config *config = opaque; signed long tmp; + if (val == NULL || *val == '\0') { + DRV_LOG(ERR, "Key %s is missing value.", key); + rte_errno = EINVAL; + return -rte_errno; + } errno = 0; tmp = strtol(val, NULL, 0); if (errno) {