From: Marek VavruĊĦa Date: Tue, 21 Jul 2015 12:45:49 +0000 (+0200) Subject: daemon/main: fixed CID#126582, CID#126580 X-Git-Tag: v1.0.0-beta1~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0641d95bc4471f61307ebec18dfd52818938c27;p=thirdparty%2Fknot-resolver.git daemon/main: fixed CID#126582, CID#126580 --- diff --git a/daemon/main.c b/daemon/main.c index f64bf8e2f..cb72d48a1 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -51,7 +51,7 @@ static void tty_read(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) } uv_os_fd_t dup_fd = dup(stream_fd); if (dup_fd >= 0) { - out = outerr = fdopen(dup(stream_fd), "w"); + out = outerr = fdopen(dup_fd, "w"); } } /* Execute */ diff --git a/daemon/worker.c b/daemon/worker.c index 7208c87ec..98fea4973 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -348,12 +348,15 @@ static int qr_task_step(struct qr_task *task, knot_pkt_t *packet) } } else { struct ioreq *conn_req = ioreq_take(task->worker); + if (!conn_req) { + return qr_task_step(task, NULL); + } conn_req->as.connect.data = task; - if (!conn_req || uv_tcp_connect(&conn_req->as.connect, (uv_tcp_t *)subreq, addr, on_connect) != 0) { + task->ioreq = (uv_req_t *)conn_req; + if (uv_tcp_connect(&conn_req->as.connect, (uv_tcp_t *)subreq, addr, on_connect) != 0) { ioreq_release(task->worker, conn_req); return qr_task_step(task, NULL); } - task->ioreq = (uv_req_t *)conn_req; } /* Start next step with timeout */