diff options
Diffstat (limited to 'src/firejail/fs_home.c')
-rw-r--r-- | src/firejail/fs_home.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/firejail/fs_home.c b/src/firejail/fs_home.c index 7c3f3835b..9d9832c15 100644 --- a/src/firejail/fs_home.c +++ b/src/firejail/fs_home.c | |||
@@ -67,8 +67,10 @@ static void skel(const char *homedir) { | |||
67 | if (asprintf(&fname, "%s/.zshrc", homedir) == -1) | 67 | if (asprintf(&fname, "%s/.zshrc", homedir) == -1) |
68 | errExit("asprintf"); | 68 | errExit("asprintf"); |
69 | // don't copy it if we already have the file | 69 | // don't copy it if we already have the file |
70 | if (access(fname, F_OK) == 0) | 70 | if (access(fname, F_OK) == 0) { |
71 | free(fname); | ||
71 | return; | 72 | return; |
73 | } | ||
72 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat | 74 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat |
73 | fprintf(stderr, "Error: invalid %s file\n", fname); | 75 | fprintf(stderr, "Error: invalid %s file\n", fname); |
74 | exit(1); | 76 | exit(1); |
@@ -91,8 +93,10 @@ static void skel(const char *homedir) { | |||
91 | if (asprintf(&fname, "%s/.cshrc", homedir) == -1) | 93 | if (asprintf(&fname, "%s/.cshrc", homedir) == -1) |
92 | errExit("asprintf"); | 94 | errExit("asprintf"); |
93 | // don't copy it if we already have the file | 95 | // don't copy it if we already have the file |
94 | if (access(fname, F_OK) == 0) | 96 | if (access(fname, F_OK) == 0) { |
97 | free(fname); | ||
95 | return; | 98 | return; |
99 | } | ||
96 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat | 100 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat |
97 | fprintf(stderr, "Error: invalid %s file\n", fname); | 101 | fprintf(stderr, "Error: invalid %s file\n", fname); |
98 | exit(1); | 102 | exit(1); |
@@ -115,8 +119,10 @@ static void skel(const char *homedir) { | |||
115 | if (asprintf(&fname, "%s/.bashrc", homedir) == -1) | 119 | if (asprintf(&fname, "%s/.bashrc", homedir) == -1) |
116 | errExit("asprintf"); | 120 | errExit("asprintf"); |
117 | // don't copy it if we already have the file | 121 | // don't copy it if we already have the file |
118 | if (access(fname, F_OK) == 0) | 122 | if (access(fname, F_OK) == 0) { |
123 | free(fname); | ||
119 | return; | 124 | return; |
125 | } | ||
120 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat | 126 | if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat |
121 | fprintf(stderr, "Error: invalid %s file\n", fname); | 127 | fprintf(stderr, "Error: invalid %s file\n", fname); |
122 | exit(1); | 128 | exit(1); |