All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Sinan Kaya <okaya@kernel.org>,
	Stephen Hemminger <stephen@networkplumber.org>,
	Anatoly Burakov <anatoly.burakov@intel.com>
Subject: [PATCH v4 3/5] memzone: check result of rte_fbarray_get and malloc_elem_from_data
Date: Mon, 10 Jul 2023 10:07:58 -0700	[thread overview]
Message-ID: <20230710170800.12478-4-stephen@networkplumber.org> (raw)
In-Reply-To: <20230710170800.12478-1-stephen@networkplumber.org>

From: Sinan Kaya <okaya@kernel.org>

In memzone_lookup_thread_unsafe result of call to rte_fbarray_get
is dereferenced here and may be null.

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 <okaya@kernel.org>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/common/eal_common_memzone.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c
index 1f3e7014995b..c96053b41e63 100644
--- a/lib/eal/common/eal_common_memzone.c
+++ b/lib/eal/common/eal_common_memzone.c
@@ -77,7 +77,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);
@@ -206,6 +206,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);
@@ -395,6 +399,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 " "
-- 
2.39.2


  parent reply	other threads:[~2023-07-10 17:08 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-20  4:41 [PATCH v3 00/10] codeql fixes for various subsystems okaya
2023-01-20  4:41 ` [PATCH v3 01/10] ethdev: check return result of rte_eth_dev_info_get okaya
2023-01-20 10:21   ` Morten Brørup
2023-01-20  4:41 ` [PATCH v3 02/10] memzone: check result of rte_fbarray_get okaya
2023-01-20  4:41 ` [PATCH v3 03/10] memzone: check result of malloc_elem_from_data okaya
2023-01-20  4:41 ` [PATCH v3 04/10] malloc: malloc_elem_join_adjacent_free can return null okaya
2023-01-20  4:41 ` [PATCH v3 05/10] malloc: check result of rte_mem_virt2memseg_list okaya
2023-01-20  4:41 ` [PATCH v3 06/10] malloc: check result of rte_fbarray_get okaya
2023-01-20  4:41 ` [PATCH v3 07/10] malloc: check result of rte_mem_virt2memseg okaya
2023-01-20  4:41 ` [PATCH v3 08/10] malloc: check result of malloc_elem_free okaya
2023-01-20  4:41 ` [PATCH v3 09/10] malloc: check result of elem_start_pt okaya
2023-01-20  4:41 ` [PATCH v3 10/10] bus/vdev: check result of rte_vdev_device_name okaya
2023-01-20 16:47   ` Stephen Hemminger
2023-01-22 20:51     ` Thomas Monjalon
2023-02-06 16:01       ` Sinan Kaya
2023-02-06 18:46         ` Thomas Monjalon
2023-02-06 16:00 ` [PATCH v3 00/10] codeql fixes for various subsystems Sinan Kaya
2023-07-06 22:43 ` Stephen Hemminger
2023-07-10 15:18   ` Sinan Kaya
2023-07-10 17:07 ` [PATCH v4 0/5] fixes for problems found by codeql analyzer Stephen Hemminger
2023-07-10 17:07   ` [PATCH v4 1/5] mailmap: add Sinan Stephen Hemminger
2023-07-10 17:07   ` [PATCH v4 2/5] ethdev: check return result of rte_eth_dev_info_get Stephen Hemminger
2023-12-16 10:06     ` Andrew Rybchenko
2023-12-16 10:08       ` Andrew Rybchenko
2023-07-10 17:07   ` Stephen Hemminger [this message]
2023-07-10 17:07   ` [PATCH v4 4/5] malloc: codeql fixes Stephen Hemminger
2023-07-10 17:08   ` [PATCH v4 5/5] bus/vdev: check result of rte_vdev_device_name Stephen Hemminger
2023-12-16 10:10     ` Andrew Rybchenko
2023-07-11  1:37   ` [PATCH v4 0/5] fixes for problems found by codeql analyzer fengchengwen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230710170800.12478-4-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=okaya@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.