From: okaya@kernel.org
To: dev@dpdk.org
Cc: Sinan Kaya <okaya@kernel.org>
Subject: [PATCH 08/11] malloc: check result of rte_mem_virt2memseg
Date: Mon, 21 Nov 2022 15:40:14 -0500 [thread overview]
Message-ID: <20221121204015.1135573-9-okaya@kernel.org> (raw)
In-Reply-To: <20221121204015.1135573-1-okaya@kernel.org>
From: Sinan Kaya <okaya@kernel.org>
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 <okaya@kernel.org>
---
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..54d7b2f278 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)
+ 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) {
+ 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 438c0856e2..1bf2e94c83 100644
--- a/lib/eal/common/malloc_heap.c
+++ b/lib/eal/common/malloc_heap.c
@@ -932,7 +932,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 && (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);
}
--
2.25.1
next prev parent reply other threads:[~2022-11-21 20:41 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 20:40 [PATCH 00/11] codeql fixes for various subsystems okaya
2022-11-21 20:40 ` [PATCH 01/11] ethdev: check return result of rte_eth_dev_info_get okaya
2022-11-21 20:40 ` [PATCH 02/11] net/tap: check if name is null okaya
2022-11-21 21:41 ` Thomas Monjalon
2022-11-21 22:03 ` Sinan Kaya
2022-11-21 22:57 ` Ferruh Yigit
2022-11-21 20:40 ` [PATCH 03/11] memzone: check result of rte_fbarray_get okaya
2022-11-21 20:40 ` [PATCH 04/11] memzone: check result of malloc_elem_from_data okaya
2022-11-21 20:40 ` [PATCH 05/11] malloc: malloc_elem_join_adjacent_free can return null okaya
2022-11-21 20:40 ` [PATCH 06/11] malloc: check result of rte_mem_virt2memseg_list okaya
2022-11-21 20:40 ` [PATCH 07/11] malloc: check result of rte_fbarray_get okaya
2022-11-21 20:40 ` okaya [this message]
2022-11-21 20:40 ` [PATCH 09/11] malloc: check result of malloc_elem_free okaya
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=20221121204015.1135573-9-okaya@kernel.org \
--to=okaya@kernel.org \
--cc=dev@dpdk.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.