]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machinectl: make sure of path_extract_filename() returning O_DIRECTORY
authorLennart Poettering <lennart@poettering.net>
Tue, 23 Feb 2021 16:22:31 +0000 (17:22 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 2 Mar 2021 14:07:48 +0000 (15:07 +0100)
src/machine/machinectl.c

index 1ae10e5880a1d3ce6cc2a9d9a2db027c04094a3c..e5befe50e113cfd76689bcfa84cbc30afa97c3bc 100644 (file)
@@ -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;
         }