summaryrefslogtreecommitdiff
path: root/0111-bugfix-for-file-param-verify.patch
blob: 2903c4b79a8f35cc390c5421716b8268b01966eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
From d0fd2c2bf87d7befaa8810a70d7eb2061664f02f Mon Sep 17 00:00:00 2001
From: zhongtao <zhongtao17@huawei.com>
Date: Fri, 14 Jun 2024 09:55:28 +0800
Subject: [PATCH 111/121] bugfix for file param verify

Signed-off-by: zhongtao <zhongtao17@huawei.com>
---
 src/cmd/isula/base/create.c | 19 +++++++++++++++++++
 src/cmd/isula/images/load.c |  6 ++++++
 2 files changed, 25 insertions(+)

diff --git a/src/cmd/isula/base/create.c b/src/cmd/isula/base/create.c
index 543b8fd6..b04dddb5 100644
--- a/src/cmd/isula/base/create.c
+++ b/src/cmd/isula/base/create.c
@@ -292,6 +292,12 @@ static int append_env_variables_to_conf(const char *env_file, isula_container_co
     int ret = 0;
     size_t file_size;
 
+    if (util_dir_exists(env_file)) {
+        COMMAND_ERROR("Env file is a directory: %s", env_file);
+        ret = -1;
+        goto out;   
+    }
+
     if (!util_file_exists(env_file)) {
         COMMAND_ERROR("env file not exists: %s", env_file);
         ret = -1;
@@ -427,6 +433,12 @@ static int append_labels_to_conf(const char *label_file, isula_container_config_
     int ret = 0;
     size_t file_size;
 
+    if (util_dir_exists(label_file)) {
+        COMMAND_ERROR("Label file is a directory: %s", label_file);
+        ret = -1;
+        goto out;   
+    }
+
     if (!util_file_exists(label_file)) {
         COMMAND_ERROR("label file not exists: %s", label_file);
         ret = -1;
@@ -2357,6 +2369,13 @@ static int create_check_env_target_file(const struct client_arguments *args)
         ret = -1;
         goto out;
     }
+
+    if (util_dir_exists(env_path)) {
+        COMMAND_ERROR("Env target file is a directory: %s", env_path);
+        ret = -1;
+        goto out;   
+    }
+
     if (!util_file_exists(env_path)) {
         goto out;
     }
diff --git a/src/cmd/isula/images/load.c b/src/cmd/isula/images/load.c
index 314e5d5e..cb39dee7 100644
--- a/src/cmd/isula/images/load.c
+++ b/src/cmd/isula/images/load.c
@@ -162,6 +162,12 @@ int cmd_load_main(int argc, const char **argv)
         g_cmd_load_args.file = file;
     }
 
+    if (util_dir_exists(g_cmd_load_args.file)) {
+        COMMAND_ERROR("Load file is a directory: %s", g_cmd_load_args.file);
+        ret = -1;
+        exit(exit_code);
+    }
+
     if (!util_file_exists(g_cmd_load_args.file)) {
         COMMAND_ERROR("File %s is not exist", g_cmd_load_args.file);
         exit(exit_code);
-- 
2.25.1