]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Check return values for fcntl in tor_spawn_background.
authorNick Mathewson <nickm@torproject.org>
Thu, 21 Aug 2014 14:38:19 +0000 (10:38 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 21 Aug 2014 14:38:19 +0000 (10:38 -0400)
[CID 718609]

src/common/util.c

index 4029512978b49f8578e76e91315918003cd36469..16ff8e3a804224d650e1b649cd01ac7ea5dd7009 100644 (file)
@@ -4052,8 +4052,11 @@ tor_spawn_background(const char *const filename, const char **argv,
 
   status = process_handle->status = PROCESS_STATUS_RUNNING;
   /* Set stdout/stderr pipes to be non-blocking */
-  fcntl(process_handle->stdout_pipe, F_SETFL, O_NONBLOCK);
-  fcntl(process_handle->stderr_pipe, F_SETFL, O_NONBLOCK);
+  if (fcntl(process_handle->stdout_pipe, F_SETFL, O_NONBLOCK) < 0 ||
+      fcntl(process_handle->stderr_pipe, F_SETFL, O_NONBLOCK) < 0) {
+    log_warn(LD_GENERAL, "Failed to set stderror/stdout pipes nonblocking "
+             "in parent process: %s", strerror(errno));
+  }
   /* Open the buffered IO streams */
   process_handle->stdout_handle = fdopen(process_handle->stdout_pipe, "r");
   process_handle->stderr_handle = fdopen(process_handle->stderr_pipe, "r");