From d5fbef0914d4f17d37afaae8f9ffe3014e93cb38 Mon Sep 17 00:00:00 2001 From: Marcin Siodelski Date: Mon, 21 Aug 2017 14:51:33 +0200 Subject: [PATCH] [5340] Fixed invalid use of Pkt4::setFile and Pkt4::setSname functions. --- src/bin/dhcp4/dhcp4_srv.cc | 14 ++++++++------ src/lib/dhcp/pkt4.h | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc index 21948e3291..a4e60da7be 100644 --- a/src/bin/dhcp4/dhcp4_srv.cc +++ b/src/bin/dhcp4/dhcp4_srv.cc @@ -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(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(bootfile.c_str()), + bootfile.size()); } } } diff --git a/src/lib/dhcp/pkt4.h b/src/lib/dhcp/pkt4.h index bd3af7d1fe..1ccf037cff 100644 --- a/src/lib/dhcp/pkt4.h +++ b/src/lib/dhcp/pkt4.h @@ -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. /// -- 2.47.2