Always check the return value of mark_fd_nonblocking().
[paraslash.git] / stdout.c
index 178f3ee..2215f99 100644 (file)
--- a/stdout.c
+++ b/stdout.c
@@ -95,11 +95,17 @@ static void stdout_default_event_handler(struct task *t)
  */
 void stdout_set_defaults(struct stdout_task *sot)
 {
+       int ret;
+
        sot->task.private_data = sot;
        sot->task.pre_select = stdout_pre_select;
        sot->task.post_select = stdout_post_select;
        sot->task.event_handler = stdout_default_event_handler;
        sot->error = 0;
-       mark_fd_nonblocking(STDOUT_FILENO);
        sprintf(sot->task.status, "stdout writer");
+       ret = mark_fd_nonblocking(STDOUT_FILENO);
+       if (ret >= 0)
+               return;
+       PARA_EMERG_LOG("%s\n", para_strerror(-ret));
+       exit(EXIT_FAILURE);
 }