[PATCH v5 13/52] bus/dpaa: replace strerror with reentrant version
Dengdui Huang
huangdengdui at huawei.com
Mon Nov 4 12:09:58 CET 2024
The function strerror() is insecure in a multi-thread environment.
This patch uses strerror_r() to replace it.
Signed-off-by: Dengdui Huang <huangdengdui at huawei.com>
Acked-by: Chengwen Feng <fengchengwen at huawei.com>
Acked-by: Morten Brørup <mb at smartsharesystems.com>
Acked-by: Huisong Li <lihuisong at huawei.com>
---
drivers/bus/dpaa/base/fman/fman.c | 8 ++++++--
drivers/bus/dpaa/dpaa_bus.c | 5 ++++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/bus/dpaa/base/fman/fman.c b/drivers/bus/dpaa/base/fman/fman.c
index d49339d81e..d9593cf459 100644
--- a/drivers/bus/dpaa/base/fman/fman.c
+++ b/drivers/bus/dpaa/base/fman/fman.c
@@ -1132,6 +1132,7 @@ fman_init(void)
void
fman_finish(void)
{
+ char errmsg[RTE_STRERR_BUFSIZE];
struct __fman_if *__if, *tmpif;
assert(fman_ccsr_map_fd != -1);
@@ -1153,8 +1154,11 @@ fman_finish(void)
in_be32(__if->ccsr_map + 8) & ~(u32)3);
/* release the mapping */
_errno = munmap(__if->ccsr_map, __if->regs_size);
- if (unlikely(_errno < 0))
- FMAN_ERR(_errno, "munmap() = (%s)", strerror(errno));
+ if (unlikely(_errno < 0)) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
+ FMAN_ERR(_errno, "munmap() = (%s)", errmsg);
+ }
DPAA_BUS_INFO("Tearing down %s", __if->node_path);
list_del(&__if->__if.node);
rte_free(__if);
diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 9ffbe07c93..8fabd74899 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -627,12 +627,15 @@ rte_dpaa_bus_dev_build(void)
static int rte_dpaa_setup_intr(struct rte_intr_handle *intr_handle)
{
+ char errmsg[RTE_STRERR_BUFSIZE];
int fd;
fd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
if (fd < 0) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
DPAA_BUS_ERR("Cannot set up eventfd, error %i (%s)",
- errno, strerror(errno));
+ errno, errmsg);
return errno;
}
--
2.33.0
More information about the dev
mailing list