]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: port all code to use safe_getcwd()
authorLennart Poettering <lennart@poettering.net>
Wed, 17 Jan 2018 10:17:38 +0000 (11:17 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 17 Jan 2018 10:17:38 +0000 (11:17 +0100)
src/basic/path-util.c
src/cgls/cgls.c
src/nspawn/nspawn.c
src/test/test-fs-util.c

index fbf69d12eb9ea3e32a4d79599ccc27a2f0b7c893..666f48cfc331145d4cecca46954c5331f2b1a6f8 100644 (file)
@@ -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);
         }
index fb44b9f6696ff2be59a1c8f28285f8a8d8a28e2e..bd8c6a00598fc35f421575a6e25e34ac03c86807 100644 (file)
@@ -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;
                         }
 
index f580b46f868a2671b161ed2bcf1c7806a97faf9b..0f05ecff03266d94c41490f8b1fc9ca5d0c88124 100644 (file)
@@ -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.");
index cda6d9cc72e45ba00af4c9c7cc773242740657fa..9f3a500080ca265528faf40c878abd01699d835d 100644 (file)
@@ -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);