]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] buffer ATF test was failing
authorEvan Hunt <each@isc.org>
Sat, 15 Nov 2014 08:56:17 +0000 (00:56 -0800)
committerEvan Hunt <each@isc.org>
Sat, 15 Nov 2014 08:56:17 +0000 (00:56 -0800)
lib/isc/buffer.c
lib/isc/tests/buffer_test.c

index 848888ea63156896156545343dd0120a8f957f41..5d2b4fba4c7a4485bd80b5b16b151df53222131b 100644 (file)
@@ -505,20 +505,21 @@ isc_buffer_reserve(isc_buffer_t **dynbuffer, unsigned int size) {
        REQUIRE(ISC_BUFFER_VALID(*dynbuffer));
 
        len = (*dynbuffer)->length;
-       if ((len - (*dynbuffer)->used) > size)
+       if ((len - (*dynbuffer)->used) >= size)
                return (ISC_R_SUCCESS);
 
        /* Round to nearest buffer size increment */
-       len += size;
+       len = size + (*dynbuffer)->used;
        len = (len + ISC_BUFFER_INCR - 1 - ((len - 1) % ISC_BUFFER_INCR));
 
        /* Cap at UINT_MAX */
        if (len > UINT_MAX) {
                len = UINT_MAX;
-               if ((len - (*dynbuffer)->used) < size)
-                       return (ISC_R_NOMEMORY);
        }
 
+       if ((len - (*dynbuffer)->used) < size)
+               return (ISC_R_NOMEMORY);
+
        return (isc_buffer_reallocate(dynbuffer, (unsigned int) len));
 }
 
index d1b27834d940a15479fe9434d740f6e8c267101c..b2b267b408ccd9f3ff1815cf375830139cb731a4 100644 (file)
@@ -67,7 +67,7 @@ ATF_TC_BODY(isc_buffer_reserve, tc) {
         * 2048 bytes should already be available, so this call does
         * nothing.
         */
-       result = isc_buffer_reserve(&b, 2048);
+       result = isc_buffer_reserve(&b, 2000);
        ATF_CHECK_EQ(result, ISC_R_SUCCESS);
 
        ATF_CHECK(ISC_BUFFER_VALID(b));
@@ -77,7 +77,7 @@ ATF_TC_BODY(isc_buffer_reserve, tc) {
         * This call should grow it to 4096 bytes as only 2048 bytes are
         * available in the buffer.
         */
-       result = isc_buffer_reserve(&b, 2049);
+       result = isc_buffer_reserve(&b, 3000);
        ATF_CHECK_EQ(result, ISC_R_SUCCESS);
 
        ATF_CHECK(ISC_BUFFER_VALID(b));