Don't lock up at start when there aren't any free file descriptors.

This commit is contained in:
Dan Fandrich 2006-02-28 18:21:33 +00:00
parent 88377e5b61
commit 050e82e088
1 changed files with 8 additions and 4 deletions

View File

@ -4279,8 +4279,11 @@ quit_curl:
return res;
}
static void checkfds(void);
/* Ensure that file descriptors 0, 1 and 2 (stdin, stdout, stderr) are
open before starting to run. Otherwise, the first three network
sockets opened by curl could be used for input sources, downloaded data
or error logs as they will effectively be stdin, stdout and/or stderr.
*/
static void checkfds(void)
{
#ifdef HAVE_PIPE
@ -4291,8 +4294,9 @@ static void checkfds(void)
fd[1] == STDIN_FILENO ||
fd[1] == STDOUT_FILENO ||
fd[1] == STDERR_FILENO )
pipe(fd);
if (pipe(fd) < 0)
return; /* Out of handles. This isn't really a big problem now, but
will be when we try to create a socket later. */
close(fd[0]);
close(fd[1]);
#endif