diff options
author | Lennart Poettering <lennart@poettering.net> | 2021-02-23 17:22:31 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2021-03-02 15:07:48 +0100 |
commit | 7fc607637f2e27a47a44d20a81658b1b9fb52a95 (patch) | |
tree | 2c897c8dd58bc220b682f55e16758dc2655cab23 /src/machine | |
parent | ee277c6bc750b6398546fd030208e720ee155012 (diff) | |
download | systemd-7fc607637f2e27a47a44d20a81658b1b9fb52a95.tar.gz |
machinectl: make sure of path_extract_filename() returning O_DIRECTORY
Diffstat (limited to 'src/machine')
-rw-r--r-- | src/machine/machinectl.c | 6 |
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; } |