From d1575c645e5717bc35ff6c981a724444eaa8f3fe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Vavru=C5=A1a?= Date: Sat, 9 May 2015 21:44:16 +0200 Subject: [PATCH] daemon/io: check for bad udp reads --- daemon/io.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/daemon/io.c b/daemon/io.c index a62bea699..3a6071b55 100644 --- a/daemon/io.c +++ b/daemon/io.c @@ -53,6 +53,11 @@ void udp_recv(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, { uv_loop_t *loop = handle->loop; struct worker_ctx *worker = loop->data; + if (nread <= 0) { + worker_exec(worker, (uv_handle_t *)handle, NULL, addr); + return; + } + knot_pkt_t *query = knot_pkt_new(buf->base, nread, worker->mm); query->max_size = sizeof(worker->bufs.wire); worker_exec(worker, (uv_handle_t *)handle, query, addr); -- 2.47.2