Always check the return value of mark_fd_nonblocking().
[paraslash.git] / dccp_recv.c
index 6450673..07f6166 100644 (file)
@@ -73,12 +73,12 @@ static int dccp_recv_open(struct receiver_node *rn)
                ret = -ERRNO_TO_PARA_ERROR(errno);
                goto err;
        }
-
+       ret = mark_fd_nonblocking(fd);
+       if (ret < 0)
+               goto err;
        rn->buf = para_calloc(DCCP_BUFSIZE);
        rn->private_data = pdd = para_calloc(sizeof(struct private_dccp_recv_data));
-
-       pdd->fd = ret;
-       mark_fd_nonblocking(pdd->fd);
+       pdd->fd = fd;
        return 1;
 err:
        close(fd);