diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c index 303d86b85a..3befd63e22 100644 --- a/src/libostree/ostree-sysroot.c +++ b/src/libostree/ostree-sysroot.c @@ -2243,7 +2243,16 @@ ostree_sysroot_deployment_unlock (OstreeSysroot *self, OstreeDeployment *deploym deployment, _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_FLAG_DEVELOPMENT) : _ostree_sysroot_get_runstate_path ( deployment, _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_FLAG_TRANSIENT); - g_autofree char *devpath_parent = g_path_get_dirname (devpath); + + g_autofree char *devpath_parent = ""; + if (dir_or_file_path[strlen (devpath) - 1] == G_DIR_SEPARATOR) + { + g_autofree char *modifed_devpath = g_strdup (devpath); + modifed_devpath[strlen (modifed_devpath) - 1] = '\0'; + devpath_parent = g_path_get_dirname (modifed_dir); + } + else + devpath_parent = g_path_get_dirname (dir_or_file_path); if (!glnx_shutil_mkdir_p_at (AT_FDCWD, devpath_parent, 0755, cancellable, error)) return FALSE;