The function strerror() is insecure in a multi-thread environment.
This patch uses rte_strerror() to replace it.
Cc: stable@dpdk.org
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
drivers/common/cnxk/roc_dev.c | 6 ++++--
drivers/common/cnxk/roc_model.c | 4 +++-
drivers/common/cnxk/roc_utils.c | 4 +++-
3 files changed, 10 insertions(+), 4 deletions(-)
@@ -8,6 +8,8 @@
#include <sys/mman.h>
#include <unistd.h>
+#include <rte_errno.h>
+
#include "roc_api.h"
#include "roc_priv.h"
@@ -1323,7 +1325,7 @@ cn20k_pfvf_mbox_alloc(struct dev *dev, uint16_t max_vfs)
mz = plt_memzone_reserve_aligned(name, vf_mbox_region, 0, MBOX_SIZE);
if (!mz) {
- plt_err("Memory alloc failed: %s", strerror(errno));
+ plt_err("Memory alloc failed: %s", rte_strerror(errno));
goto fail;
}
@@ -1445,7 +1447,7 @@ dev_lmt_setup(struct dev *dev)
*/
mz = plt_lmt_region_reserve_aligned(name, LMT_REGION_SIZE, LMT_REGION_SIZE);
if (!mz) {
- plt_err("Memory alloc failed: %s", strerror(errno));
+ plt_err("Memory alloc failed: %s", rte_strerror(errno));
goto fail;
}
@@ -6,6 +6,8 @@
#include <fcntl.h>
#include <unistd.h>
+#include <rte_errno.h>
+
#include "roc_api.h"
#include "roc_priv.h"
@@ -157,7 +159,7 @@ cn10k_part_pass_get(uint32_t *part, uint32_t *pass)
dir = opendir(SYSFS_PCI_DEVICES);
if (dir == NULL) {
plt_err("%s(): opendir failed: %s", __func__,
- strerror(errno));
+ rte_strerror(errno));
return -errno;
}
@@ -2,6 +2,8 @@
* Copyright(C) 2021 Marvell.
*/
+#include <rte_errno.h>
+
#include "roc_api.h"
#include "roc_priv.h"
@@ -245,7 +247,7 @@ roc_error_msg_get(int errorcode)
* Handle general error (as defined in linux errno.h)
*/
if (abs(errorcode) < 300)
- err_msg = strerror(abs(errorcode));
+ err_msg = rte_strerror(abs(errorcode));
else
err_msg = "Unknown error code";
break;