From patchwork Mon Nov 21 22:32:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120015 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 588ECA056D; Mon, 21 Nov 2022 23:32:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ED54742D3C; Mon, 21 Nov 2022 23:32:17 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mails.dpdk.org (Postfix) with ESMTP id 3B9C440DF6 for ; Mon, 21 Nov 2022 23:32:16 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B9FB3614BA for ; Mon, 21 Nov 2022 22:32:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC27AC433C1; Mon, 21 Nov 2022 22:32:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069935; bh=RgYWMx2bXw0Kf6OSgrUuQ2FaHKOsqLyY7fKYUDdVLR4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DNY8rsCcsvW5nFOjwisAmggm/SkuBVRA9vQo9hQiGJ4HszBjl+BeaZ1A23kW0d+dR M2LgF8RomqaqaytQPjR2c19r6yAiKkl1fU4ZZAJSulBlgIe4DBLEwO9qC92kboX7qw dDcw3cmc0FysSIHkk7RCV2SujqdZut3L0f2uq5ZX+mPWAx57Edy4DKgNkQUa4D0hPX aCWJdmDpKnc9J6quaIOdMBg2oSy+HnP9Kxci+3pAAglvtIRZ0sYR4nyD1eLfw1ZuLl CFi9Nsn1MK4f2SmZBjP9OeLkOWXC9J4EN2xz2Xkp+RXNGDrnbG6iQg71HIolYVWA/0 Z8+PIaD5W5NjA== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 01/11] ethdev: check return result of rte_eth_dev_info_get Date: Mon, 21 Nov 2022 17:32:00 -0500 Message-Id: <20221121223208.1147154-2-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya rte_class_eth: eth_mac_cmp: The status of this call to rte_eth_dev_info_get is not checked, potentially leaving dev_info uninitialized. Signed-off-by: Sinan Kaya --- lib/ethdev/rte_class_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ethdev/rte_class_eth.c b/lib/ethdev/rte_class_eth.c index 838b3a8f9f..8165e5adc0 100644 --- a/lib/ethdev/rte_class_eth.c +++ b/lib/ethdev/rte_class_eth.c @@ -51,7 +51,9 @@ eth_mac_cmp(const char *key __rte_unused, return -1; /* invalid devargs value */ /* Return 0 if devargs MAC is matching one of the device MACs. */ - rte_eth_dev_info_get(data->port_id, &dev_info); + if (rte_eth_dev_info_get(data->port_id, &dev_info) < 0) + return -1; + for (index = 0; index < dev_info.max_mac_addrs; index++) if (rte_is_same_ether_addr(&mac, &data->mac_addrs[index])) return 0; From patchwork Mon Nov 21 22:32:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120016 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 DD4DBA056D; Mon, 21 Nov 2022 23:32:27 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF4A042D40; Mon, 21 Nov 2022 23:32:18 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mails.dpdk.org (Postfix) with ESMTP id 88B9140DF6 for ; Mon, 21 Nov 2022 23:32:16 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0EDEE612E6 for ; Mon, 21 Nov 2022 22:32:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 625DCC433B5; Mon, 21 Nov 2022 22:32:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069935; bh=nDkxEv2/TwAeupXyQuSPUNIGA1QSVTVAI7IEmhVnCt8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uJWjVVE6dlJ8Y7Oj3rUGDNNbYQPLLg+ew3feN1TYgGYTKRZo+Yw8FjDscIwDh20zJ UimaeHiYEWPfknYi4cikCp5jvsx+HNjFy7UWmJiJNQtLUHXHGE41LbDTD/5v01GLf5 ZzG/i9qL64bj2gHMSRR8XU8n+NbuUGDIzsvhOiDOQPLxsFip3he0fkP8jmtPb230CR iQjn1hBI2rVTdd/JriQyjg8MIDrX+pDvkHt5u/L1BoOq2JserE5ExqPW4Og6Ca1PAd s2RS+AXTk2yeIrQJbZbzgoClGFrFj8sfYvMicJmaZRnsyboyAgTLb/c2sDFVkmOMPm m3RLOb8PtTX7g== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 02/11] net/tap: check if name is null Date: Mon, 21 Nov 2022 17:32:01 -0500 Message-Id: <20221121223208.1147154-3-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In rte_pmd_tun_probe result of call to rte_vdev_device_name is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- drivers/net/tap/rte_eth_tap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index f2a6c33a19..b99439e4f2 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -2340,6 +2340,9 @@ rte_pmd_tun_probe(struct rte_vdev_device *dev) struct rte_eth_dev *eth_dev; name = rte_vdev_device_name(dev); + if (name == NULL) + return -1; + params = rte_vdev_device_args(dev); memset(remote_iface, 0, RTE_ETH_NAME_MAX_LEN); From patchwork Mon Nov 21 22:32:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120017 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 7A811A056D; Mon, 21 Nov 2022 23:32:33 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE56D42D4A; Mon, 21 Nov 2022 23:32:19 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mails.dpdk.org (Postfix) with ESMTP id BA19342D38 for ; Mon, 21 Nov 2022 23:32:17 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 46BEB614C1 for ; Mon, 21 Nov 2022 22:32:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 50B49C433D7; Mon, 21 Nov 2022 22:32:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069936; bh=K5pugBFGoxJAPUF3ZEC7fWyznWQWud30IQqSknljZ7A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K7/Dv2LmKD1jaI/tcGt9PlsQMvaUigFa8ydxaHabxwcttJUAl3m3ucWW2iNoV+60z 9uKq4WirrZn/eLMh+7xo+akluaqoYsrx3h/dk2WWsU1mGObi+68SAvuQPOv+g7ZTiE RS8yPPnFPDvrDy2+ULm3fpiwEWdArP37GDMIRHMomPElETnJG4cwv0Bswwvz6xG/0O 5QvrISpvgkxTwsPvNAMWw4FOhwLAYGPVUuC/bgXBi15TvZnOHgYO0SNgo5W9hHEDFO ssSquA1jGoxcJY62jLLdh4LttUosek9eSYZj9uo8wU1LXgaFKnoASC3PBNCGlyVZp+ dSwj9faUXLIzw== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 03/11] memzone: check result of rte_fbarray_get Date: Mon, 21 Nov 2022 17:32:02 -0500 Message-Id: <20221121223208.1147154-4-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In memzone_lookup_thread_unsafe result of call to rte_fbarray_get is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/eal_common_memzone.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c index 860fb5fb64..8d472505eb 100644 --- a/lib/eal/common/eal_common_memzone.c +++ b/lib/eal/common/eal_common_memzone.c @@ -41,7 +41,7 @@ memzone_lookup_thread_unsafe(const char *name) i = rte_fbarray_find_next_used(arr, 0); while (i >= 0) { mz = rte_fbarray_get(arr, i); - if (mz->addr != NULL && + if ((mz != NULL) && (mz->addr != NULL) && !strncmp(name, mz->name, RTE_MEMZONE_NAMESIZE)) return mz; i = rte_fbarray_find_next_used(arr, i + 1); @@ -358,6 +358,10 @@ dump_memzone(const struct rte_memzone *mz, void *arg) fprintf(f, "physical segments used:\n"); ms_idx = RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz; ms = rte_fbarray_get(&msl->memseg_arr, ms_idx); + if (ms == NULL) { + RTE_LOG(DEBUG, EAL, "Skipping bad memzone\n"); + return; + } do { fprintf(f, " addr: %p iova: 0x%" PRIx64 " " From patchwork Mon Nov 21 22:32:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120018 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 42E0AA056D; Mon, 21 Nov 2022 23:32:38 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 92B0742D51; Mon, 21 Nov 2022 23:32:20 +0100 (CET) Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mails.dpdk.org (Postfix) with ESMTP id ED48F42D43 for ; Mon, 21 Nov 2022 23:32:18 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A9B2EB816A0 for ; Mon, 21 Nov 2022 22:32:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFE4FC433C1; Mon, 21 Nov 2022 22:32:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069937; bh=VjI2Ec8kMto3iRfsRyn5fX9hQQiC6ztV5fVsgiMS9yw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j3FCYK6SOCQUwRB4bfaUTeuyAHQ2+4EStrZERW9nGt94/e7J9T84gixuugtREpuT0 s2t7PLUT7W1xcw7Lk1dX3y/7FYnPCJlnQdovkMHoxzXsF9pl6hxurNHsfty+O2vrgH tQdE8Y6jZmG//uBFlJq813wnU899UpSLU5l2vtW9qv+j7SwS8wnxTyTOCwntNYnGWI NXmqPL6zcYmFNEzKq0+Ifb/1wf9aYVyFgd5S4EobzvpvNoakEtiY8nv6pFKN1qOGU2 yKz8EIxbfGpi8lk7IAno5CSTX5jhyQM3SdMDlXcfAgzXf2KNWf6GMN5XlVE/sboHEz PDC090vp37SQg== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 04/11] memzone: check result of malloc_elem_from_data Date: Mon, 21 Nov 2022 17:32:03 -0500 Message-Id: <20221121223208.1147154-5-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In memzone_reserve_aligned_thread_unsafe result of call to malloc_elem_from_data is dereferenced here and may be null. Signed-off-by: Sinan Kaya Acked-by: Dmitry Kozlyuk --- lib/eal/common/eal_common_memzone.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c index 8d472505eb..930fee5fdc 100644 --- a/lib/eal/common/eal_common_memzone.c +++ b/lib/eal/common/eal_common_memzone.c @@ -169,6 +169,10 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len, } struct malloc_elem *elem = malloc_elem_from_data(mz_addr); + if (elem == NULL) { + rte_errno = ENOSPC; + return NULL; + } /* fill the zone in config */ mz_idx = rte_fbarray_find_next_free(arr, 0); From patchwork Mon Nov 21 22:32:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120019 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 DAAF8A056D; Mon, 21 Nov 2022 23:32:42 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7377342D56; Mon, 21 Nov 2022 23:32:21 +0100 (CET) Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mails.dpdk.org (Postfix) with ESMTP id 859AC42D45 for ; Mon, 21 Nov 2022 23:32:19 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 551A8B810DB for ; Mon, 21 Nov 2022 22:32:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BE9FC433B5; Mon, 21 Nov 2022 22:32:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069938; bh=e6AgEAXqwllsqVV5gZDAaE6+cqbUME7lx6SR302L8wA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sawsQ9erCoxJcYzCbpAk0TM5W9fx2whu/J60Y3HszP8T6ISFZ4Ea+tOns3zNkHGEn qcl+uv5Im8arPETIb5nuTTGBe0ceB6owI6kDgjgrcwLZsenl84YcrTw1TfBAMdGGuV 15sXEnrvJMXgtnw+V4HIPRAsBUJp5YsrNxIiwScbnvd+XxxX473gQT571QziU53p1+ anrIDHdLFvZvG7p3T3UbEcecV5EL5ir+QYQsorz0vC32WOrJOEFusbK4J1n4ikxZUS GwqXfR8AjB/2Os2arYFbxp2EC2NJyA8sXMyPk7OqoG03cFP/fnYtaXqXeWqshQnM5T gR7JhqSvwzjwQ== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 05/11] malloc: malloc_elem_join_adjacent_free can return null Date: Mon, 21 Nov 2022 17:32:04 -0500 Message-Id: <20221121223208.1147154-6-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In malloc_heap_add_memory result of call to malloc_elem_join_adjacent_free is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/malloc_heap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c index d7c410b786..503e551bf9 100644 --- a/lib/eal/common/malloc_heap.c +++ b/lib/eal/common/malloc_heap.c @@ -97,6 +97,8 @@ malloc_heap_add_memory(struct malloc_heap *heap, struct rte_memseg_list *msl, malloc_elem_insert(elem); elem = malloc_elem_join_adjacent_free(elem); + if (elem == NULL) + return NULL; malloc_elem_free_list_insert(elem); From patchwork Mon Nov 21 22:32:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120020 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 A5ED0A056D; Mon, 21 Nov 2022 23:32:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5869542D5E; Mon, 21 Nov 2022 23:32:22 +0100 (CET) Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mails.dpdk.org (Postfix) with ESMTP id 4855842D4C for ; Mon, 21 Nov 2022 23:32:20 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 1373BB8169E for ; Mon, 21 Nov 2022 22:32:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6550BC43470; Mon, 21 Nov 2022 22:32:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069938; bh=OA9aKvIimBSPp+xtTJJVhYWAQ4KuSadN9gXKHvpeV1w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kN/9cVBIC1hk4km5gRUX2Caz7u+Hfm/Jg6arg46mWpvASPauwrNUAQd/yICCb7G1o QxpGQA6ww0XMoMTgMkBijG1IO/M+CXTHkz4ev8TjubEzG0VWMTv+VDHkFDmvJe6EMu fmihRepdUjCJ4RqCXSuIfQa/mDyCQ9L0Y0qUNkdJJYj8Y+nDXsKlnJNq2oW3ERa/At hHJr/7MIfux8i8TOv0jn3L0FOB86Ac+DZg3gZSGwEnLvma77eWC8SDjnLlMTXccxWh MOwfGgtdOmz6UCj788G3PxPyFJSsB+vaSgzrgSJMb5Sz830+LrFTta3vj2XyG1WCJ/ SgnavfqmXr1zw== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 06/11] malloc: check result of rte_mem_virt2memseg_list Date: Mon, 21 Nov 2022 17:32:05 -0500 Message-Id: <20221121223208.1147154-7-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In alloc_pages_on_heap result of call to rte_mem_virt2memseg_list is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/malloc_heap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c index 503e551bf9..3f41430e42 100644 --- a/lib/eal/common/malloc_heap.c +++ b/lib/eal/common/malloc_heap.c @@ -323,6 +323,8 @@ alloc_pages_on_heap(struct malloc_heap *heap, uint64_t pg_sz, size_t elt_size, map_addr = ms[0]->addr; msl = rte_mem_virt2memseg_list(map_addr); + if (msl == NULL) + return NULL; /* check if we wanted contiguous memory but didn't get it */ if (contig && !eal_memalloc_is_contig(msl, map_addr, alloc_sz)) { From patchwork Mon Nov 21 22:32:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120021 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 62D16A056D; Mon, 21 Nov 2022 23:32:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A94D442D67; Mon, 21 Nov 2022 23:32:23 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mails.dpdk.org (Postfix) with ESMTP id 625FC42D4E for ; Mon, 21 Nov 2022 23:32:20 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D2CD6614BA for ; Mon, 21 Nov 2022 22:32:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C960C433C1; Mon, 21 Nov 2022 22:32:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069939; bh=b9XPdlFmqr0VZaZ/G6xeC3g+pdTGxgCDoDwiCqKPQLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NBhnhaLDXVgeYa+02fimQblcQLE0sfnJ0ENjVVFeMq4D470pO44Du8cjT7BzoOsRu vaEURWMFk9f/UTJ4Hf3cTV5VSocSeUp4k+9WDVZ8a3CvfbPvafQ8xT4b0+064CGAbK CTb1/x9taYSre8Cs5O40D6kXR1+h493x2A8TfXlHXJatmx/TLHnEltLd4V5howcp5f EAHxexQxnnwGfIjVoEVMiu/Us4Y9wQuJuf0kIY9xR/x0Qc7/Um3jy5RgbODK0jIsZS sojaeDXf3zGLdW7JmefYcakU3qdOxKH0JFO9y4RRWTrhFnHFZkmHuFiGtmGrXaB3wi wIBvNT1DRdW5A== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 07/11] malloc: check result of rte_fbarray_get Date: Mon, 21 Nov 2022 17:32:06 -0500 Message-Id: <20221121223208.1147154-8-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In eal_memalloc_is_contig result of call to rte_fbarray_get is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/eal_common_memalloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/eal/common/eal_common_memalloc.c b/lib/eal/common/eal_common_memalloc.c index ab04479c1c..24506f8447 100644 --- a/lib/eal/common/eal_common_memalloc.c +++ b/lib/eal/common/eal_common_memalloc.c @@ -126,6 +126,9 @@ eal_memalloc_is_contig(const struct rte_memseg_list *msl, void *start, /* skip first iteration */ ms = rte_fbarray_get(&msl->memseg_arr, start_seg); + if (ms == NULL) + return false; + cur = ms->iova; expected = cur + pgsz; @@ -137,7 +140,7 @@ eal_memalloc_is_contig(const struct rte_memseg_list *msl, void *start, cur_seg++, expected += pgsz) { ms = rte_fbarray_get(&msl->memseg_arr, cur_seg); - if (ms->iova != expected) + if ((ms != NULL) && (ms->iova != expected)) return false; } } From patchwork Mon Nov 21 22:32:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120022 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 D836DA056D; Mon, 21 Nov 2022 23:32:59 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9163542D6A; Mon, 21 Nov 2022 23:32:24 +0100 (CET) Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mails.dpdk.org (Postfix) with ESMTP id 0BC2142D5A for ; Mon, 21 Nov 2022 23:32:22 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id CB1B1B8169E for ; Mon, 21 Nov 2022 22:32:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00A38C433D6; Mon, 21 Nov 2022 22:32:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069940; bh=W2hMNo666ixKADSmKcIGEqrJdVzX4Yclf2h5OFo6Gqg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bTcPYIfsTaj2X02zCg9AU1ktae+W2qFSYX0emQtPJckfpuudA74dYsUHXpy+apS1v dgNRsLNrmeFR7VmbLJ1QfSdnA9ytsGJk3WP1cR4c/56hVzKl3/CRuJ3yXqFskqNP/G S0Fjbop+wNPEBPmSmW8F+USGt1qoIyu9WY8xBh3SQ76fMhUL9/jsLH3+sOiMn2UyAz 34tvxHjlqT6ryEuXgbVJfC5Sv5StFde/oq4gDogiGX8ApbT8o/cCUGfrh0PjyoivrA AR3eGXXvCd8z1oXsyN4XQLkdqH0sMRoCBxP/UtRZZd2w65ngT47hs/+WLKR34MuvQP Z3vsoePAjzc3Q== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 08/11] malloc: check result of rte_mem_virt2memseg Date: Mon, 21 Nov 2022 17:32:07 -0500 Message-Id: <20221121223208.1147154-9-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In malloc_elem_find_max_iova_contig result of call to rte_mem_virt2memseg is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/malloc_elem.c | 11 ++++++++--- lib/eal/common/malloc_heap.c | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/eal/common/malloc_elem.c b/lib/eal/common/malloc_elem.c index 83f05497cc..8f49812846 100644 --- a/lib/eal/common/malloc_elem.c +++ b/lib/eal/common/malloc_elem.c @@ -63,6 +63,8 @@ malloc_elem_find_max_iova_contig(struct malloc_elem *elem, size_t align) cur_page = RTE_PTR_ALIGN_FLOOR(contig_seg_start, page_sz); ms = rte_mem_virt2memseg(cur_page, elem->msl); + if (ms == NULL) + return 0; /* do first iteration outside the loop */ page_end = RTE_PTR_ADD(cur_page, page_sz); @@ -91,9 +93,12 @@ malloc_elem_find_max_iova_contig(struct malloc_elem *elem, size_t align) * we're not blowing past data end. */ ms = rte_mem_virt2memseg(contig_seg_start, elem->msl); - cur_page = ms->addr; - /* don't trigger another recalculation */ - expected_iova = ms->iova; + if (ms != NULL) { + cur_page = ms->addr; + + /* don't trigger another recalculation */ + expected_iova = ms->iova; + } continue; } /* cur_seg_end ends on a page boundary or on data end. if we're diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c index 3f41430e42..88270ce4d2 100644 --- a/lib/eal/common/malloc_heap.c +++ b/lib/eal/common/malloc_heap.c @@ -930,7 +930,7 @@ malloc_heap_free(struct malloc_elem *elem) const struct rte_memseg *tmp = rte_mem_virt2memseg(aligned_start, msl); - if (tmp->flags & RTE_MEMSEG_FLAG_DO_NOT_FREE) { + if ((tmp != NULL) && (tmp->flags & RTE_MEMSEG_FLAG_DO_NOT_FREE)) { /* this is an unfreeable segment, so move start */ aligned_start = RTE_PTR_ADD(tmp->addr, tmp->len); } From patchwork Mon Nov 21 22:32:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 120023 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 8B5E4A056D; Mon, 21 Nov 2022 23:33:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6799C42D6E; Mon, 21 Nov 2022 23:32:25 +0100 (CET) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mails.dpdk.org (Postfix) with ESMTP id 319A742D5B for ; Mon, 21 Nov 2022 23:32:22 +0100 (CET) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B7068614C1 for ; Mon, 21 Nov 2022 22:32:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBEC6C433D7; Mon, 21 Nov 2022 22:32:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1669069941; bh=RigiKorR3dMZBI+SxDLNAndkSDREvu4zoNk+V8ONMkc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OV9NEFYm5qnTF+K33Ql4BTnodVV7iMXx0oNJgMv8hU1vO487Y5eZ1hVKk8K0lVd5+ s1OfRbm2lpNijnJ6ISCj2TDZpYG1NN8t0jxGkgFxoZAj+W3c9WQjK0oe5MlA2l3YyM lMJXvIko5Hr/xqyQ8PhmiVgBB9xO+q3WqzTe/pPKPg0LFKyHJnXkKNAJC4mYpYC8XJ 6Aa1xC0XKDlA7z00TuBS9caZHM9WYdmJkWaaSdeKce0byt+RoqArIA2c1gb7WgeFA0 xnXsr44psdTm3oervgVTtqKKsvAN0MtIaLOts1xV4ogM0e4SzPv6MpKxFAaH/MTBfs o21j4BkmMp3Qw== From: okaya@kernel.org To: dev@dpdk.org Cc: Sinan Kaya Subject: [PATCH v2 09/11] malloc: check result of malloc_elem_free Date: Mon, 21 Nov 2022 17:32:08 -0500 Message-Id: <20221121223208.1147154-10-okaya@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221121223208.1147154-1-okaya@kernel.org> References: <20221121223208.1147154-1-okaya@kernel.org> MIME-Version: 1.0 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: Sinan Kaya In malloc_heap_free result of call to malloc_elem_free is dereferenced here and may be null. Signed-off-by: Sinan Kaya --- lib/eal/common/malloc_heap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c index 88270ce4d2..6eb6fcda5e 100644 --- a/lib/eal/common/malloc_heap.c +++ b/lib/eal/common/malloc_heap.c @@ -892,6 +892,9 @@ malloc_heap_free(struct malloc_elem *elem) /* anything after this is a bonus */ ret = 0; + if (elem == NULL) + goto free_unlock; + /* ...of which we can't avail if we are in legacy mode, or if this is an * externally allocated segment. */