]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Fix recvbuff code with missing refetch when needing more buffers
authorDanny Mayer <mayer@ntp.org>
Wed, 21 Dec 2005 03:09:09 +0000 (22:09 -0500)
committerDanny Mayer <mayer@ntp.org>
Wed, 21 Dec 2005 03:09:09 +0000 (22:09 -0500)
bk: 43a8c755zkplXbE41ChrzyX77B9nKA

libntp/recvbuff.c

index 3985ca365aead3c099f1030e67605581f84d924e..adf6a95bb587c8dc622783de2d3469bc32f100ef 100644 (file)
@@ -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);
 }