From: Lennart Poettering Date: Tue, 23 Feb 2021 16:22:31 +0000 (+0100) Subject: machinectl: make sure of path_extract_filename() returning O_DIRECTORY X-Git-Tag: v248-rc3~80^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7fc607637f2e27a47a44d20a81658b1b9fb52a95;p=thirdparty%2Fsystemd.git machinectl: make sure of path_extract_filename() returning O_DIRECTORY --- diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 1ae10e5880a..e5befe50e11 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; }