return r;
_cleanup_close_ int directory_fd = -EBADF;
- r = mountfsd_make_directory(d, /* flags= */ 0, &directory_fd);
+ r = mountfsd_make_directory(d, MODE_INVALID, /* flags= */ 0, &directory_fd);
if (r < 0)
return r;
}
_cleanup_close_ int directory_fd = -EBADF;
- r = mountfsd_make_directory(t, /* flags= */ 0, &directory_fd);
+ r = mountfsd_make_directory(t, MODE_INVALID, /* flags= */ 0, &directory_fd);
if (r < 0)
return r;
return r;
_cleanup_close_ int directory_fd = -EBADF;
- r = mountfsd_make_directory(where, /* flags= */ 0, &directory_fd);
+ r = mountfsd_make_directory(where, MODE_INVALID, /* flags= */ 0, &directory_fd);
if (r < 0)
return r;
_cleanup_close_ int new_fd = -EBADF;
r = mountfsd_make_directory(
new_path,
+ MODE_INVALID,
/* flags= */ 0,
&new_fd);
if (r < 0)
int mountfsd_make_directory_fd(
int parent_fd,
const char *name,
+ mode_t mode,
DissectImageFlags flags,
int *ret_directory_fd) {
&error_id,
SD_JSON_BUILD_PAIR_UNSIGNED("parentFileDescriptor", 0),
SD_JSON_BUILD_PAIR_STRING("name", name),
+ SD_JSON_BUILD_PAIR_CONDITION(!IN_SET(mode, MODE_INVALID, 0700), "mode", SD_JSON_BUILD_UNSIGNED(mode)), /* suppress this field if default/unset */
SD_JSON_BUILD_PAIR_BOOLEAN("allowInteractiveAuthentication", FLAGS_SET(flags, DISSECT_IMAGE_ALLOW_INTERACTIVE_AUTH)));
if (r < 0)
return r;
int mountfsd_make_directory(
const char *path,
+ mode_t mode,
DissectImageFlags flags,
int *ret_directory_fd) {
if (fd < 0)
return log_error_errno(r, "Failed to open '%s': %m", parent);
- return mountfsd_make_directory_fd(fd, dirname, flags, ret_directory_fd);
+ return mountfsd_make_directory_fd(fd, dirname, mode, flags, ret_directory_fd);
}
int mountfsd_mount_directory_fd(int directory_fd, int userns_fd, DissectImageFlags flags, int *ret_mount_fd);
int mountfsd_mount_directory(const char *path, int userns_fd, DissectImageFlags flags, int *ret_mount_fd);
-int mountfsd_make_directory_fd(int parent_fd, const char *name, DissectImageFlags flags, int *ret_directory_fd);
-int mountfsd_make_directory(const char *path, DissectImageFlags flags, int *ret_directory_fd);
+int mountfsd_make_directory_fd(int parent_fd, const char *name, mode_t mode, DissectImageFlags flags, int *ret_directory_fd);
+int mountfsd_make_directory(const char *path, mode_t mode, DissectImageFlags flags, int *ret_directory_fd);