From: Lennart Poettering Date: Wed, 17 Jan 2018 10:17:38 +0000 (+0100) Subject: tree-wide: port all code to use safe_getcwd() X-Git-Tag: v237~86^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d72495759b0f953b86f16669bf8120ede28836a5;p=thirdparty%2Fsystemd.git tree-wide: port all code to use safe_getcwd() --- diff --git a/src/basic/path-util.c b/src/basic/path-util.c index fbf69d12eb9..666f48cfc33 100644 --- a/src/basic/path-util.c +++ b/src/basic/path-util.c @@ -110,6 +110,7 @@ int safe_getcwd(char **ret) { int path_make_absolute_cwd(const char *p, char **ret) { char *c; + int r; assert(p); assert(ret); @@ -122,9 +123,9 @@ int path_make_absolute_cwd(const char *p, char **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); } diff --git a/src/cgls/cgls.c b/src/cgls/cgls.c index fb44b9f6696..bd8c6a00598 100644 --- a/src/cgls/cgls.c +++ b/src/cgls/cgls.c @@ -277,9 +277,9 @@ int main(int argc, char *argv[]) { 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; } diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index f580b46f868..0f05ecff032 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -2163,8 +2163,11 @@ static int determine_names(void) { 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."); diff --git a/src/test/test-fs-util.c b/src/test/test-fs-util.c index cda6d9cc72e..9f3a500080c 100644 --- a/src/test/test-fs-util.c +++ b/src/test/test-fs-util.c @@ -326,7 +326,7 @@ static void test_readlink_and_make_absolute(void) { 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);