summaryrefslogtreecommitdiff
path: root/src/machine
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-02-23 17:22:31 +0100
committerLennart Poettering <lennart@poettering.net>2021-03-02 15:07:48 +0100
commit7fc607637f2e27a47a44d20a81658b1b9fb52a95 (patch)
tree2c897c8dd58bc220b682f55e16758dc2655cab23 /src/machine
parentee277c6bc750b6398546fd030208e720ee155012 (diff)
downloadsystemd-7fc607637f2e27a47a44d20a81658b1b9fb52a95.tar.gz
machinectl: make sure of path_extract_filename() returning O_DIRECTORY
Diffstat (limited to 'src/machine')
-rw-r--r--src/machine/machinectl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c
index 1ae10e5880..e5befe50e1 100644
--- a/src/machine/machinectl.c
+++ b/src/machine/machinectl.c
@@ -1872,6 +1872,9 @@ static int import_tar(int argc, char *argv[], void *userdata) {
r = path_extract_filename(path, &fn);
if (r < 0)
return log_error_errno(r, "Cannot extract container name from filename: %m");
+ if (r == O_DIRECTORY)
+ return log_error_errno(SYNTHETIC_ERRNO(EISDIR),
+ "Path '%s' refers to directory, but we need a regular file: %m", path);
local = fn;
}
@@ -1932,6 +1935,9 @@ static int import_raw(int argc, char *argv[], void *userdata) {
r = path_extract_filename(path, &fn);
if (r < 0)
return log_error_errno(r, "Cannot extract container name from filename: %m");
+ if (r == O_DIRECTORY)
+ return log_error_errno(SYNTHETIC_ERRNO(EISDIR),
+ "Path '%s' refers to directory, but we need a regular file: %m", path);
local = fn;
}