diff options
| -rw-r--r-- | attach.c | 12 | ||||
| -rw-r--r-- | master.c | 6 |
2 files changed, 15 insertions, 3 deletions
@@ -170,7 +170,11 @@ attach_main(int noerror) if (chdir(sockname) >= 0) { s = connect_socket(slash + 1); - fchdir(dirfd); + if (s >= 0 && fchdir(dirfd) < 0) + { + close(s); + s = -1; + } } *slash = '/'; close(dirfd); @@ -315,7 +319,11 @@ push_main() if (chdir(sockname) >= 0) { s = connect_socket(slash + 1); - fchdir(dirfd); + if (s >= 0 && fchdir(dirfd) < 0) + { + close(s); + s = -1; + } } *slash = '/'; close(dirfd); @@ -594,7 +594,11 @@ master_main(char **argv, int waitattach, int dontfork) if (chdir(sockname) >= 0) { s = create_socket(slash + 1); - fchdir(dirfd); + if (s >= 0 && fchdir(dirfd) < 0) + { + close(s); + s = -1; + } } *slash = '/'; close(dirfd); |
