The function strerror() is insecure in a multi-thread environment.
This patch uses rte_strerror() to replace it.

Cc: sta...@dpdk.org

Signed-off-by: Dengdui Huang <huangdeng...@huawei.com>
Acked-by: Chengwen Feng <fengcheng...@huawei.com>
Acked-by: Morten Brørup <m...@smartsharesystems.com>
---
 drivers/raw/ifpga/afu_pmd_n3000.c      |  5 +++--
 drivers/raw/ifpga/base/ifpga_fme_rsu.c | 12 +++++++-----
 drivers/raw/ifpga/ifpga_rawdev.c       |  2 +-
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/raw/ifpga/afu_pmd_n3000.c 
b/drivers/raw/ifpga/afu_pmd_n3000.c
index 6aae1b224e..a67a427985 100644
--- a/drivers/raw/ifpga/afu_pmd_n3000.c
+++ b/drivers/raw/ifpga/afu_pmd_n3000.c
@@ -21,6 +21,7 @@
 #include <bus_pci_driver.h>
 #include <bus_ifpga_driver.h>
 #include <rte_rawdev.h>
+#include <rte_errno.h>
 
 #include "afu_pmd_core.h"
 #include "afu_pmd_n3000.h"
@@ -693,7 +694,7 @@ static int poll_interrupt(struct dma_afu_ctx *ctx)
        pfd.events = POLLIN;
        poll_ret = poll(&pfd, 1, DMA_TIMEOUT_MSEC);
        if (poll_ret < 0) {
-               IFPGA_RAWDEV_PMD_ERR("Error %s", strerror(errno));
+               IFPGA_RAWDEV_PMD_ERR("Error %s", rte_strerror(errno));
                ret = -EFAULT;
                goto out;
        } else if (poll_ret == 0) {
@@ -708,7 +709,7 @@ static int poll_interrupt(struct dma_afu_ctx *ctx)
                        ret = 0;
                } else {
                        IFPGA_RAWDEV_PMD_ERR("Failed %s", bytes_read > 0 ?
-                               strerror(errno) : "zero bytes read");
+                               rte_strerror(errno) : "zero bytes read");
                        ret = -EIO;
                }
        }
diff --git a/drivers/raw/ifpga/base/ifpga_fme_rsu.c 
b/drivers/raw/ifpga/base/ifpga_fme_rsu.c
index f147aaa1e8..8e8a611f9a 100644
--- a/drivers/raw/ifpga/base/ifpga_fme_rsu.c
+++ b/drivers/raw/ifpga/base/ifpga_fme_rsu.c
@@ -7,6 +7,8 @@
 #include <unistd.h>
 #include "ifpga_sec_mgr.h"
 
+#include <rte_errno.h>
+
 static struct ifpga_sec_mgr *sec_mgr;
 
 static void set_rsu_control(struct ifpga_sec_mgr *smgr, uint32_t ctrl)
@@ -112,7 +114,7 @@ static int write_flash_image(struct ifpga_sec_mgr *smgr, 
const char *image,
        if (fd < 0) {
                dev_err(smgr,
                        "Failed to open \'%s\' for RD [e:%s]\n",
-                       image, strerror(errno));
+                       image, rte_strerror(errno));
                return -EIO;
        }
 
@@ -130,14 +132,14 @@ static int write_flash_image(struct ifpga_sec_mgr *smgr, 
const char *image,
                        IFPGA_RSU_DATA_BLK_SIZE : length;
                if (lseek(fd, offset, SEEK_SET) < 0) {
                        dev_err(smgr, "Failed to seek in \'%s\' [e:%s]\n",
-                               image, strerror(errno));
+                               image, rte_strerror(errno));
                        ret = -EIO;
                        goto end;
                }
                read_size = read(fd, buf, to_transfer);
                if (read_size < 0) {
                        dev_err(smgr, "Failed to read from \'%s\' [e:%s]\n",
-                               image, strerror(errno));
+                               image, rte_strerror(errno));
                        ret = -EIO;
                        goto end;
                }
@@ -316,7 +318,7 @@ int fpga_update_flash(struct ifpga_fme_hw *fme, const char 
*image,
        if (fd < 0) {
                dev_err(smgr,
                        "Failed to open \'%s\' for RD [e:%s]\n",
-                       image, strerror(errno));
+                       image, rte_strerror(errno));
                return -EIO;
        }
        len = lseek(fd, 0, SEEK_END);
@@ -325,7 +327,7 @@ int fpga_update_flash(struct ifpga_fme_hw *fme, const char 
*image,
        if (len < 0) {
                dev_err(smgr,
                        "Failed to get file length of \'%s\' [e:%s]\n",
-                       image, strerror(errno));
+                       image, rte_strerror(errno));
                return -EIO;
        }
        if (len == 0) {
diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
index 5b9b596435..5982621373 100644
--- a/drivers/raw/ifpga/ifpga_rawdev.c
+++ b/drivers/raw/ifpga/ifpga_rawdev.c
@@ -848,7 +848,7 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id,
        if (file_fd < 0) {
                IFPGA_RAWDEV_PMD_ERR("%s: open file error: %s",
                                __func__, file_name);
-               IFPGA_RAWDEV_PMD_ERR("Message : %s", strerror(errno));
+               IFPGA_RAWDEV_PMD_ERR("Message : %s", rte_strerror(errno));
                return -EINVAL;
        }
        ret = stat(file_name, &file_stat);
-- 
2.33.0

Reply via email to