summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-01-17 11:17:38 +0100
committerLennart Poettering <lennart@poettering.net>2018-01-17 11:17:38 +0100
commitd72495759b0f953b86f16669bf8120ede28836a5 (patch)
treeeacd34debbc87ef5838ad5cd36a8c637d2be68d1 /src
parenta2556d25ae8e7c1aa1e75affb45226b02813a03b (diff)
downloadsystemd-d72495759b0f953b86f16669bf8120ede28836a5.tar.gz
tree-wide: port all code to use safe_getcwd()
Diffstat (limited to 'src')
-rw-r--r--src/basic/path-util.c7
-rw-r--r--src/cgls/cgls.c6
-rw-r--r--src/nspawn/nspawn.c7
-rw-r--r--src/test/test-fs-util.c2
4 files changed, 13 insertions, 9 deletions
diff --git a/src/basic/path-util.c b/src/basic/path-util.c
index fbf69d12eb..666f48cfc3 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 fb44b9f669..bd8c6a0059 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 f580b46f86..0f05ecff03 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 cda6d9cc72..9f3a500080 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);