hikptool/0075-hikptool-nic-check-path-before-used-it-in-function-h.patch
zhangyuyang 9266dc4f4d hikptool: Modify the review comments to increase the reliability of the code
Synchronize code, Modify the review comments to increase the reliability of the code

Signed-off-by: veega2022 <zhuweijia@huawei.com>
(cherry picked from commit d2a23f9ffed0201385c7864b9cd58312fb395cb6)
2024-11-26 16:32:40 +08:00

41 lines
1.2 KiB
Diff

From e6127d30663daef7cb847265006b592eebbfc152 Mon Sep 17 00:00:00 2001
From: Peiyang Wang <wangpeiyang1@huawei.com>
Date: Tue, 20 Aug 2024 17:02:33 +0800
Subject: [PATCH 13/27] hikptool: nic: check path before used it in function
hikp_get_dir_name_of_device
check path before used it in hikp_get_dir_name_of_device
Signed-off-by: Peiyang Wang <wangpeiyang1@huawei.com>
---
net/hikp_net_lib.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/net/hikp_net_lib.c b/net/hikp_net_lib.c
index 32b278b..4e1e305 100644
--- a/net/hikp_net_lib.c
+++ b/net/hikp_net_lib.c
@@ -238,13 +238,17 @@ int get_revision_id_by_bdf(const struct bdf_t *bdf, char *revision_id, size_t id
static int hikp_get_dir_name_of_device(const char *path, size_t len, char *dir_name)
{
+ char file_path[PATH_MAX] = { 0 }; /* PATH_MAX includes the \0 so +1 is not required */
struct dirent *ptr;
DIR *dir = NULL;
- if (len > PCI_MAX_DIR_NAME_LEN)
+ if (len > PCI_MAX_DIR_NAME_LEN || strlen(path) > PATH_MAX)
return -EINVAL;
- dir = opendir(path);
+ if (!realpath(path, file_path))
+ return -errno;
+
+ dir = opendir(file_path);
if (dir == NULL) {
HIKP_ERROR_PRINT("read path %s fail.\n", path);
return -EINVAL;
--
2.45.0.windows.1