From: Marek VavruĊĦa Date: Sat, 9 May 2015 19:44:16 +0000 (+0200) Subject: daemon/io: check for bad udp reads X-Git-Tag: v1.0.0-beta1~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1575c645e5717bc35ff6c981a724444eaa8f3fe;p=thirdparty%2Fknot-resolver.git daemon/io: check for bad udp reads --- 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);