BIND 10 trac2749, updated. 1685d98e142c2b5915d19bf17f4029459a922321 [2749] Update resize() call arguments to be sizeof instead of literal values

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Jan 27 04:00:11 UTC 2014


The branch, trac2749 has been updated
       via  1685d98e142c2b5915d19bf17f4029459a922321 (commit)
       via  04f5b145f2e0ea8fc4ad30b7222198a91b3e5189 (commit)
       via  9eedd903b78552493ea8fd55f89b8a58b94398d1 (commit)
       via  99fe38e5d0b65cfe32b03ccbd61d5e174e093a4f (commit)
       via  a071815cc23931803825f6323d88ed1253ddfca7 (commit)
       via  44b85098852c11243059319d4a75a124339e17d0 (commit)
       via  45809d98ad9b62de6a0736d138547913d808a10e (commit)
      from  c7aeb4bec30cf6373e77216058174d6d35850dde (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1685d98e142c2b5915d19bf17f4029459a922321
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:28:43 2014 +0530

    [2749] Update resize() call arguments to be sizeof instead of literal values

commit 04f5b145f2e0ea8fc4ad30b7222198a91b3e5189
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:22:34 2014 +0530

    [2749] Remove redundant checks

commit 9eedd903b78552493ea8fd55f89b8a58b94398d1
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:22:19 2014 +0530

    [2749] Update name of test (fix case)

commit 99fe38e5d0b65cfe32b03ccbd61d5e174e093a4f
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:19:23 2014 +0530

    [2749] Update length argument

commit a071815cc23931803825f6323d88ed1253ddfca7
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:14:00 2014 +0530

    [2749] Remove space between sizeof and (

commit 44b85098852c11243059319d4a75a124339e17d0
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:10:22 2014 +0530

    [2749] Replace size() calls with literal values
    
    This gives us a very tiny speedup, as size() was a const method already.

commit 45809d98ad9b62de6a0736d138547913d808a10e
Author: Mukund Sivaraman <muks at isc.org>
Date:   Mon Jan 27 09:07:47 2014 +0530

    [2749] Add comment that we know there's room available in the buffer

-----------------------------------------------------------------------

Summary of changes:
 src/bin/dhcp6/dhcp6_srv.cc                         |   14 +++++++-----
 src/lib/asiodns/tests/io_fetch_unittest.cc         |    3 ++-
 src/lib/asiolink/tests/tcp_socket_unittest.cc      |    6 ++---
 src/lib/asiolink/tests/udp_socket_unittest.cc      |    2 +-
 src/lib/dhcp/option.cc                             |   23 +++++++-------------
 .../resolve/tests/recursive_query_unittest_2.cc    |    2 +-
 .../resolve/tests/recursive_query_unittest_3.cc    |    2 +-
 src/lib/util/io_utilities.h                        |    8 +++----
 src/lib/util/tests/io_utilities_unittest.cc        |   17 ++++++++-------
 9 files changed, 38 insertions(+), 39 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc
index 7a3b804..10f6bb4 100644
--- a/src/bin/dhcp6/dhcp6_srv.cc
+++ b/src/bin/dhcp6/dhcp6_srv.cc
@@ -604,11 +604,12 @@ Dhcpv6Srv::generateServerID() {
         seconds -= DUID_TIME_EPOCH;
 
         OptionBuffer srvid(8 + iface->getMacLen());
-        writeUint16(DUID::DUID_LLT, &srvid[0], srvid.size());
-        writeUint16(HWTYPE_ETHERNET, &srvid[2], srvid.size() - 2);
-        writeUint32(static_cast<uint32_t>(seconds), &srvid[4],
-                    srvid.size() - 4);
-        memcpy(&srvid[0] + 8, iface->getMac(), iface->getMacLen());
+        // We know that the buffer is at least 8 bytes long at this
+        // point.
+        writeUint16(DUID::DUID_LLT, &srvid[0], 2);
+        writeUint16(HWTYPE_ETHERNET, &srvid[2], 2);
+        writeUint32(static_cast<uint32_t>(seconds), &srvid[4], 4);
+        memcpy(&srvid[8], iface->getMac(), iface->getMacLen());
 
         serverid_ = OptionPtr(new Option(Option::V6, D6O_SERVERID,
                                          srvid.begin(), srvid.end()));
@@ -2345,6 +2346,9 @@ Dhcpv6Srv::unpackOptions(const OptionBuffer& buf,
     // The buffer being read comprises a set of options, each starting with
     // a two-byte type code and a two-byte length field.
     while (offset + 4 <= length) {
+        // At this point, from the while condition, we know that there
+        // are at least 4 bytes available following offset in the
+        // buffer.
         uint16_t opt_type = isc::util::readUint16(&buf[offset], 2);
         offset += 2;
 
diff --git a/src/lib/asiodns/tests/io_fetch_unittest.cc b/src/lib/asiodns/tests/io_fetch_unittest.cc
index 1357a7b..7f79a52 100644
--- a/src/lib/asiodns/tests/io_fetch_unittest.cc
+++ b/src/lib/asiodns/tests/io_fetch_unittest.cc
@@ -280,7 +280,8 @@ public:
         cumulative_ += length;
         bool complete = false;
         if (cumulative_ > 2) {
-            uint16_t dns_length = readUint16(receive_buffer_, sizeof (receive_buffer_));
+            uint16_t dns_length = readUint16(receive_buffer_,
+                                             sizeof(receive_buffer_));
             complete = ((dns_length + 2) == cumulative_);
         }
 
diff --git a/src/lib/asiolink/tests/tcp_socket_unittest.cc b/src/lib/asiolink/tests/tcp_socket_unittest.cc
index 8683318..b0adf2e 100644
--- a/src/lib/asiolink/tests/tcp_socket_unittest.cc
+++ b/src/lib/asiolink/tests/tcp_socket_unittest.cc
@@ -261,7 +261,7 @@ TEST(TCPSocket, processReceivedData) {
     }
 
     // Check that the method will handle various receive sizes.
-    writeUint16(PACKET_SIZE, inbuff, sizeof (inbuff));
+    writeUint16(PACKET_SIZE, inbuff, sizeof(inbuff));
 
     cumulative = 0;
     offset = 0;
@@ -317,7 +317,7 @@ TEST(TCPSocket, processReceivedData) {
 // Tests the operation of a TCPSocket by opening it, sending an asynchronous
 // message to a server, receiving an asynchronous message from the server and
 // closing.
-TEST(TCPSocket, SequenceTest) {
+TEST(TCPSocket, sequenceTest) {
 
     // Common objects.
     IOService   service;                    // Service object for async control
@@ -408,7 +408,7 @@ TEST(TCPSocket, SequenceTest) {
     server_cb.length() = 0;
     server_cb.cumulative() = 0;
 
-    writeUint16(sizeof(INBOUND_DATA), server_cb.data(), 2);
+    writeUint16(sizeof(INBOUND_DATA), server_cb.data(), TCPCallback::MIN_SIZE);
     copy(INBOUND_DATA, (INBOUND_DATA + sizeof(INBOUND_DATA) - 1),
         (server_cb.data() + 2));
     server_socket.async_send(asio::buffer(server_cb.data(),
diff --git a/src/lib/asiolink/tests/udp_socket_unittest.cc b/src/lib/asiolink/tests/udp_socket_unittest.cc
index 4a81d73..be62590 100644
--- a/src/lib/asiolink/tests/udp_socket_unittest.cc
+++ b/src/lib/asiolink/tests/udp_socket_unittest.cc
@@ -188,7 +188,7 @@ TEST(UDPSocket, processReceivedData) {
     // two bytes of the buffer.
     uint16_t count = 0;
     for (uint32_t i = 0; i < (2 << 16); ++i, ++count) {
-        writeUint16(count, inbuff, sizeof (inbuff));
+        writeUint16(count, inbuff, sizeof(inbuff));
 
         // Set some random values
         cumulative = 5;
diff --git a/src/lib/dhcp/option.cc b/src/lib/dhcp/option.cc
index b6c157b..24ddc06 100644
--- a/src/lib/dhcp/option.cc
+++ b/src/lib/dhcp/option.cc
@@ -250,35 +250,28 @@ uint8_t Option::getUint8() {
 }
 
 uint16_t Option::getUint16() {
-    if (data_.size() < sizeof(uint16_t) ) {
-        isc_throw(OutOfRange, "Attempt to read uint16 from option " << type_
-                  << " that has size " << data_.size());
-    }
-
+    // readUint16() checks and throws OutOfRange if data_ is too small.
     return (readUint16(&data_[0], data_.size()));
 }
 
 uint32_t Option::getUint32() {
-    if (data_.size() < sizeof(uint32_t) ) {
-        isc_throw(OutOfRange, "Attempt to read uint32 from option " << type_
-                  << " that has size " << data_.size());
-    }
+    // readUint32() checks and throws OutOfRange if data_ is too small.
     return (readUint32(&data_[0], data_.size()));
 }
 
 void Option::setUint8(uint8_t value) {
-  data_.resize(1);
-  data_[0] = value;
+    data_.resize(sizeof(value));
+    data_[0] = value;
 }
 
 void Option::setUint16(uint16_t value) {
-  data_.resize(2);
-  writeUint16(value, &data_[0], data_.size());
+    data_.resize(sizeof(value));
+    writeUint16(value, &data_[0], data_.size());
 }
 
 void Option::setUint32(uint32_t value) {
-  data_.resize(4);
-  writeUint32(value, &data_[0], data_.size());
+    data_.resize(sizeof(value));
+    writeUint32(value, &data_[0], data_.size());
 }
 
 bool Option::equal(const OptionPtr& other) const {
diff --git a/src/lib/resolve/tests/recursive_query_unittest_2.cc b/src/lib/resolve/tests/recursive_query_unittest_2.cc
index 5557e20..8c2e9e3 100644
--- a/src/lib/resolve/tests/recursive_query_unittest_2.cc
+++ b/src/lib/resolve/tests/recursive_query_unittest_2.cc
@@ -463,7 +463,7 @@ public:
         bool complete = false;
         if (tcp_cumulative_ > 2) {
             uint16_t dns_length = readUint16(tcp_receive_buffer_,
-                                             sizeof (tcp_receive_buffer_));
+                                             sizeof(tcp_receive_buffer_));
             complete = ((dns_length + 2) == tcp_cumulative_);
         }
 
diff --git a/src/lib/resolve/tests/recursive_query_unittest_3.cc b/src/lib/resolve/tests/recursive_query_unittest_3.cc
index 1049bf2..acf60d6 100644
--- a/src/lib/resolve/tests/recursive_query_unittest_3.cc
+++ b/src/lib/resolve/tests/recursive_query_unittest_3.cc
@@ -337,7 +337,7 @@ public:
         bool complete = false;
         if (tcp_cumulative_ > 2) {
             uint16_t dns_length = readUint16(tcp_receive_buffer_,
-                                             sizeof (tcp_receive_buffer_));
+                                             sizeof(tcp_receive_buffer_));
             complete = ((dns_length + 2) == tcp_cumulative_);
         }
 
diff --git a/src/lib/util/io_utilities.h b/src/lib/util/io_utilities.h
index 82fd311..4cfa999 100644
--- a/src/lib/util/io_utilities.h
+++ b/src/lib/util/io_utilities.h
@@ -34,7 +34,7 @@ namespace util {
 /// \return Value of 16-bit integer
 inline uint16_t
 readUint16(const void* buffer, size_t length) {
-    if (length < sizeof (uint16_t)) {
+    if (length < sizeof(uint16_t)) {
         isc_throw(isc::OutOfRange,
                   "Length (" << length << ") of buffer is insufficient " <<
                   "to read a uint16_t");
@@ -61,7 +61,7 @@ readUint16(const void* buffer, size_t length) {
 /// \return pointer to the next byte after stored value
 inline uint8_t*
 writeUint16(uint16_t value, void* buffer, size_t length) {
-    if (length < sizeof (uint16_t)) {
+    if (length < sizeof(uint16_t)) {
         isc_throw(isc::OutOfRange,
                   "Length (" << length << ") of buffer is insufficient " <<
                   "to write a uint16_t");
@@ -85,7 +85,7 @@ writeUint16(uint16_t value, void* buffer, size_t length) {
 /// \return Value of 32-bit unsigned integer
 inline uint32_t
 readUint32(const uint8_t* buffer, size_t length) {
-    if (length < sizeof (uint32_t)) {
+    if (length < sizeof(uint32_t)) {
         isc_throw(isc::OutOfRange,
                   "Length (" << length << ") of buffer is insufficient " <<
                   "to read a uint32_t");
@@ -111,7 +111,7 @@ readUint32(const uint8_t* buffer, size_t length) {
 /// \return pointer to the next byte after stored value
 inline uint8_t*
 writeUint32(uint32_t value, uint8_t* buffer, size_t length) {
-    if (length < sizeof (uint32_t)) {
+    if (length < sizeof(uint32_t)) {
         isc_throw(isc::OutOfRange,
                   "Length (" << length << ") of buffer is insufficient " <<
                   "to write a uint32_t");
diff --git a/src/lib/util/tests/io_utilities_unittest.cc b/src/lib/util/tests/io_utilities_unittest.cc
index 6c71123..d7d3b0e 100644
--- a/src/lib/util/tests/io_utilities_unittest.cc
+++ b/src/lib/util/tests/io_utilities_unittest.cc
@@ -42,14 +42,14 @@ TEST(asioutil, readUint16) {
             data[0] = i8;
             data[1] = j8;
             buffer.setPosition(0);
-            EXPECT_EQ(buffer.readUint16(), readUint16(data, sizeof (data)));
+            EXPECT_EQ(buffer.readUint16(), readUint16(data, sizeof(data)));
         }
     }
 }
 
 TEST(asioutil, readUint16OutOfRange) {
     uint8_t data;
-    EXPECT_THROW(readUint16(&data, sizeof (data)), isc::OutOfRange);
+    EXPECT_THROW(readUint16(&data, sizeof(data)), isc::OutOfRange);
 }
 
 TEST(asioutil, writeUint16) {
@@ -68,7 +68,7 @@ TEST(asioutil, writeUint16) {
         buffer.writeUint16(i16);
 
         // ... and the test data
-        writeUint16(i16, test, sizeof (test));
+        writeUint16(i16, test, sizeof(test));
 
         // ... and compare
         const uint8_t* ref = static_cast<const uint8_t*>(buffer.getData());
@@ -80,7 +80,7 @@ TEST(asioutil, writeUint16) {
 TEST(asioutil, writeUint16OutOfRange) {
     uint16_t i16 = 42;
     uint8_t data;
-    EXPECT_THROW(writeUint16(i16, &data, sizeof (data)), isc::OutOfRange);
+    EXPECT_THROW(writeUint16(i16, &data, sizeof(data)), isc::OutOfRange);
 }
 
 // test data shared amount readUint32 and writeUint32 tests
@@ -103,14 +103,14 @@ TEST(asioutil, readUint32) {
             uint32_t tmp = htonl(test32[i]);
             memcpy(&data[offset], &tmp, sizeof(uint32_t));
 
-            EXPECT_EQ(test32[i], readUint32(&data[offset], sizeof (uint32_t)));
+            EXPECT_EQ(test32[i], readUint32(&data[offset], sizeof(uint32_t)));
         }
     }
 }
 
 TEST(asioutil, readUint32OutOfRange) {
     uint8_t data[3];
-    EXPECT_THROW(readUint32(data, sizeof (data)), isc::OutOfRange);
+    EXPECT_THROW(readUint32(data, sizeof(data)), isc::OutOfRange);
 }
 
 TEST(asioutil, writeUint32) {
@@ -121,7 +121,8 @@ TEST(asioutil, writeUint32) {
     // it 4 times.
     for (int offset=0; offset < 4; offset++) {
         for (int i=0; i < sizeof(test32)/sizeof(uint32_t); i++) {
-            uint8_t* ptr = writeUint32(test32[i], &data[offset], sizeof (uint32_t));
+            uint8_t* ptr = writeUint32(test32[i], &data[offset],
+                                       sizeof(uint32_t));
 
             EXPECT_EQ(&data[offset]+sizeof(uint32_t), ptr);
 
@@ -135,5 +136,5 @@ TEST(asioutil, writeUint32) {
 TEST(asioutil, writeUint32OutOfRange) {
     uint32_t i32 = 28;
     uint8_t data[3];
-    EXPECT_THROW(writeUint32(i32, data, sizeof (data)), isc::OutOfRange);
+    EXPECT_THROW(writeUint32(i32, data, sizeof(data)), isc::OutOfRange);
 }



More information about the bind10-changes mailing list