]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5340] Fixed invalid use of Pkt4::setFile and Pkt4::setSname functions.
authorMarcin Siodelski <marcin@isc.org>
Mon, 21 Aug 2017 12:51:33 +0000 (14:51 +0200)
committerMarcin Siodelski <marcin@isc.org>
Mon, 21 Aug 2017 12:51:33 +0000 (14:51 +0200)
src/bin/dhcp4/dhcp4_srv.cc
src/lib/dhcp/pkt4.h

index 21948e32912331cfdb0306767a8809f804562771..a4e60da7be6af31782e9a882439318f4a726d646 100644 (file)
@@ -401,14 +401,16 @@ Dhcpv4Exchange::setReservedMessageFields() {
             resp_->setSiaddr(host->getNextServer());
         }
 
-        if (!host->getServerHostname().empty()) {
-            resp_->setSname(reinterpret_cast<
-                            const uint8_t*>(host->getServerHostname().c_str()));
+        std::string sname = host->getServerHostname();
+        if (!sname.empty()) {
+            resp_->setSname(reinterpret_cast<const uint8_t*>(sname.c_str()),
+                            sname.size());
         }
 
-        if (!host->getBootFileName().empty()) {
-            resp_->setFile(reinterpret_cast<
-                           const uint8_t*>(host->getBootFileName().c_str()));
+        std::string bootfile = host->getBootFileName();
+        if (!bootfile.empty()) {
+            resp_->setFile(reinterpret_cast<const uint8_t*>(bootfile.c_str()),
+                           bootfile.size());
         }
     }
 }
index bd3af7d1fe45a00042bea52463d106e292cca002..1ccf037cff411e5c1c3e17fe1268254abfe5185a 100644 (file)
@@ -269,7 +269,7 @@ public:
     ///
     /// @param sname value to be set
     /// @param sname_len length of the sname buffer (up to MAX_SNAME_LEN)
-    void setSname(const uint8_t* sname, size_t sname_len = MAX_SNAME_LEN);
+    void setSname(const uint8_t* sname, size_t sname_len);
 
     /// @brief Returns file field
     ///
@@ -285,7 +285,7 @@ public:
     /// @param file value to be set
     /// @param file_len length of the file buffer (up to MAX_FILE_LEN)
     void
-    setFile(const uint8_t* file, size_t file_len = MAX_FILE_LEN);
+    setFile(const uint8_t* file, size_t file_len);
 
     /// @brief Sets hardware address.
     ///