From: Tomek Mrugalski Date: Thu, 29 Dec 2011 13:18:02 +0000 (+0100) Subject: fix: memory leak in IfaceMgr::receive4(), reference in IfaceMgr test (cppcheck) X-Git-Tag: trac2351_base~310^2~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cfe92d0076a6b8108cb232a5fbfddddd9197c0b;p=thirdparty%2Fkea.git fix: memory leak in IfaceMgr::receive4(), reference in IfaceMgr test (cppcheck) --- diff --git a/src/lib/dhcp/iface_mgr.cc b/src/lib/dhcp/iface_mgr.cc index dfdeecbd2e..153ffdae7d 100644 --- a/src/lib/dhcp/iface_mgr.cc +++ b/src/lib/dhcp/iface_mgr.cc @@ -716,7 +716,7 @@ IfaceMgr::receive4() { struct in_addr to_addr; boost::shared_ptr pkt; const uint32_t RCVBUFSIZE = 1500; - uint8_t* buf = (uint8_t*) malloc(RCVBUFSIZE); + static uint8_t buf[RCVBUFSIZE]; memset(&control_buf_[0], 0, control_buf_len_); memset(&from_addr, 0, sizeof(from_addr)); @@ -747,7 +747,6 @@ IfaceMgr::receive4() { if (result < 0) { cout << "Failed to receive UDP4 data." << endl; - delete buf; return (boost::shared_ptr()); // NULL } @@ -784,7 +783,6 @@ IfaceMgr::receive4() { } if (!found_pktinfo) { cout << "Unable to find pktinfo" << endl; - delete buf; return (boost::shared_ptr()); // NULL } #endif diff --git a/src/lib/dhcp/tests/iface_mgr_unittest.cc b/src/lib/dhcp/tests/iface_mgr_unittest.cc index ce63945045..ee0769ddd1 100644 --- a/src/lib/dhcp/tests/iface_mgr_unittest.cc +++ b/src/lib/dhcp/tests/iface_mgr_unittest.cc @@ -675,7 +675,7 @@ size_t parse_mac(const std::string& textMac, uint8_t* mac, size_t macLen) { /// /// @param textFile name of a text file that holds output of ifconfig -a /// @param ifaces empty list of interfaces to be filled -void parse_ifconfig(const std::string textFile, IfaceMgr::IfaceCollection& ifaces) { +void parse_ifconfig(const std::string& textFile, IfaceMgr::IfaceCollection& ifaces) { fstream f(textFile.c_str()); bool first_line = true;