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)
41 lines
1.2 KiB
Diff
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
|
|
|