From: Danny Mayer Date: Wed, 21 Dec 2005 03:09:09 +0000 (-0500) Subject: Fix recvbuff code with missing refetch when needing more buffers X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd1c7e1fab2d0b220dbf8e1440eec5f4da19efea;p=thirdparty%2Fntp.git Fix recvbuff code with missing refetch when needing more buffers bk: 43a8c755zkplXbE41ChrzyX77B9nKA --- diff --git a/libntp/recvbuff.c b/libntp/recvbuff.c index 3985ca365a..adf6a95bb5 100644 --- a/libntp/recvbuff.c +++ b/libntp/recvbuff.c @@ -153,14 +153,19 @@ get_free_recv_buffer(void) if (create_buffers(RECV_INC) <= 0) { msyslog(LOG_ERR, "No more memory for recvufs"); + UNLOCK(); + return (NULL); + } + buffer = ISC_LIST_HEAD(free_list); + if (buffer == NULL) + { + msyslog(LOG_ERR, "Failed to obtain more memory for recvbufs"); + UNLOCK(); return (NULL); } } - else - { - ISC_LIST_DEQUEUE(free_list, buffer, link); - free_recvbufs--; - } + ISC_LIST_DEQUEUE(free_list, buffer, link); + free_recvbufs--; UNLOCK(); return (buffer); }