int path_make_absolute_cwd(const char *p, char **ret) {
char *c;
+ int r;
assert(p);
assert(ret);
else {
_cleanup_free_ char *cwd = NULL;
- cwd = get_current_dir_name();
- if (!cwd)
- return negative_errno();
+ r = safe_getcwd(&cwd);
+ if (r < 0)
+ return r;
c = strjoin(cwd, "/", p);
}
if (!arg_machine) {
_cleanup_free_ char *cwd = NULL;
- cwd = get_current_dir_name();
- if (!cwd) {
- r = log_error_errno(errno, "Cannot determine current working directory: %m");
+ r = safe_getcwd(&cwd);
+ if (r < 0) {
+ log_error_errno(r, "Cannot determine current working directory: %m");
goto finish;
}
if (!arg_ephemeral)
arg_read_only = arg_read_only || i->read_only;
- } else
- arg_directory = get_current_dir_name();
+ } else {
+ r = safe_getcwd(&arg_directory);
+ if (r < 0)
+ return log_error_errno(r, "Failed to determine current directory: %m");
+ }
if (!arg_directory && !arg_image) {
log_error("Failed to determine path, please use -D or -i.");
free(r);
assert_se(unlink(name_alias) >= 0);
- assert_se(pwd = get_current_dir_name());
+ assert_se(safe_getcwd(&pwd) >= 0);
assert_se(chdir(tempdir) >= 0);
assert_se(symlink(name2, name_alias) >= 0);