projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Centralise calls to fcntl into functions that carefully check the
[u/mdw/putty]
/
unix
/
uxproxy.c
diff --git
a/unix/uxproxy.c
b/unix/uxproxy.c
index
def8a40
..
aa1ff07
100644
(file)
--- a/
unix/uxproxy.c
+++ b/
unix/uxproxy.c
@@
-297,6
+297,7
@@
Socket platform_new_connection(SockAddr addr, char *hostname,
if (pid < 0) {
ret->error = dupprintf("fork: %s", strerror(errno));
if (pid < 0) {
ret->error = dupprintf("fork: %s", strerror(errno));
+ sfree(cmd);
return (Socket)ret;
} else if (pid == 0) {
close(0);
return (Socket)ret;
} else if (pid == 0) {
close(0);
@@
-305,8
+306,8
@@
Socket platform_new_connection(SockAddr addr, char *hostname,
dup2(from_cmd_pipe[1], 1);
close(to_cmd_pipe[0]);
close(from_cmd_pipe[1]);
dup2(from_cmd_pipe[1], 1);
close(to_cmd_pipe[0]);
close(from_cmd_pipe[1]);
-
fcntl(0, F_SETFD,
0);
-
fcntl(1, F_SETFD, 0
);
+
noncloexec(
0);
+
noncloexec(1
);
execl("/bin/sh", "sh", "-c", cmd, (void *)NULL);
_exit(255);
}
execl("/bin/sh", "sh", "-c", cmd, (void *)NULL);
_exit(255);
}