]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/main: fixed CID#126582, CID#126580
authorMarek Vavruša <marek.vavrusa@nic.cz>
Tue, 21 Jul 2015 12:45:49 +0000 (14:45 +0200)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Tue, 21 Jul 2015 12:45:49 +0000 (14:45 +0200)
daemon/main.c
daemon/worker.c

index f64bf8e2fbaf066a7b57e18735edd732da0de4e2..cb72d48a18f593380d9f1f89bb7b593a8f492738 100644 (file)
@@ -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 */
index 7208c87ec97ee8a8f3b5bcf5ae823fbfaa47459b..98fea497355cbd73c946495773b937ca034d05b1 100644 (file)
@@ -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 */