From 9739dae794834cf5e77ba834992710ecfc508ca5 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 12 May 2010 19:29:13 +0200 Subject: proxycommand: check the return values of pipe(). --- libssh/socket.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libssh/socket.c b/libssh/socket.c index 935baee..b555c54 100644 --- a/libssh/socket.c +++ b/libssh/socket.c @@ -934,12 +934,21 @@ int ssh_socket_connect_proxycommand(ssh_socket s, const char *command){ socket_t in_pipe[2]; socket_t out_pipe[2]; int pid; + int rc; ssh_session session=s->session; enter_function(); if(s->state != SSH_SOCKET_NONE) return SSH_ERROR; - pipe(in_pipe); - pipe(out_pipe); + + rc = pipe(in_pipe); + if (rc < 0) { + return SSH_ERROR; + } + rc = pipe(out_pipe); + if (rc < 0) { + return SSH_ERROR; + } + pid = fork(); if(pid == 0){ ssh_execute_command(command,out_pipe[0],in_pipe[1]); -- cgit v1.2.3