Commit 011af4de authored by Mark Andrews's avatar Mark Andrews
Browse files

Lock dispatch manager buffer_lock before accessing buffers;

Only test buffers for UDP dispatches.
parent afc7389c
......@@ -1500,8 +1500,14 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) {
if (disp->recv_pending != 0 && dispsock == NULL)
return (ISC_R_SUCCESS);
if (disp->mgr->buffers >= disp->mgr->maxbuffers)
return (ISC_R_NOMEMORY);
if (disp->socktype == isc_sockettype_udp) {
LOCK(&disp->mgr->buffer_lock);
if (disp->mgr->buffers >= disp->mgr->maxbuffers) {
UNLOCK(&disp->mgr->buffer_lock);
return (ISC_R_NOMEMORY);
}
UNLOCK(&disp->mgr->buffer_lock);
}
if ((disp->attributes & DNS_DISPATCHATTR_EXCLUSIVE) != 0 &&
dispsock == NULL)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment