From: Marcin Siodelski Date: Tue, 6 Sep 2016 09:52:14 +0000 (+0200) Subject: [4252] CID 1364686. Resource leak in Pkt6 unit tests. X-Git-Tag: trac5006_base~31^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bea5e04b8a9a351f8be1d2c5dabe629e31b9be4;p=thirdparty%2Fkea.git [4252] CID 1364686. Resource leak in Pkt6 unit tests. --- diff --git a/src/lib/dhcp/tests/pkt6_unittest.cc b/src/lib/dhcp/tests/pkt6_unittest.cc index 5bd03d80d7..2ee4a2b034 100644 --- a/src/lib/dhcp/tests/pkt6_unittest.cc +++ b/src/lib/dhcp/tests/pkt6_unittest.cc @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -145,8 +146,7 @@ TEST_F(Pkt6Test, constructor) { /// but we spent some time to make is less ugly than it used to be. /// /// @return pointer to Pkt6 that represents received SOLICIT -Pkt6* capture1() { - Pkt6* pkt; +Pkt6Ptr capture1() { uint8_t data[98]; data[0] = 1; data[1] = 1; data[2] = 2; data[3] = 3; data[4] = 0; @@ -175,7 +175,7 @@ Pkt6* capture1() { data[93] = 6; data[94] = 0; data[95] = 2; data[96] = 0; data[97] = 23; - pkt = new Pkt6(data, sizeof(data)); + Pkt6Ptr pkt(new Pkt6(data, sizeof(data))); pkt->setRemotePort(546); pkt->setRemoteAddr(IOAddress("fe80::21e:8cff:fe9b:7349")); pkt->setLocalPort(0); @@ -220,7 +220,7 @@ Pkt6* capture1() { /// The original capture was posted to dibbler users mailing list. /// /// @return created double relayed SOLICIT message -Pkt6* capture2() { +Pkt6Ptr capture2() { // string exported from Wireshark string hex_string = @@ -238,18 +238,18 @@ Pkt6* capture2() { // to be OptionBuffer format) isc::util::encode::decodeHex(hex_string, bin); - NakedPkt6* pkt = new NakedPkt6(&bin[0], bin.size()); + NakedPkt6Ptr pkt(new NakedPkt6(&bin[0], bin.size())); pkt->setRemotePort(547); pkt->setRemoteAddr(IOAddress("fe80::1234")); pkt->setLocalPort(547); pkt->setLocalAddr(IOAddress("ff05::1:3")); pkt->setIndex(2); pkt->setIface("eth0"); - return (dynamic_cast(pkt)); + return (boost::dynamic_pointer_cast(pkt)); } TEST_F(Pkt6Test, unpack_solicit1) { - scoped_ptr sol(capture1()); + Pkt6Ptr sol(capture1()); ASSERT_NO_THROW(sol->unpack()); @@ -294,7 +294,7 @@ TEST_F(Pkt6Test, packUnpack) { TEST_F(Pkt6Test, unpackMalformed) { // Get a packet. We're really interested in its on-wire // representation only. - scoped_ptr donor(capture1()); + Pkt6Ptr donor(capture1()); // That's our original content. It should be sane. OptionBuffer orig = donor->data_; @@ -367,7 +367,7 @@ TEST_F(Pkt6Test, unpackMalformed) { TEST_F(Pkt6Test, unpackVendorMalformed) { // Get a packet. We're really interested in its on-wire // representation only. - scoped_ptr donor(capture1()); + Pkt6Ptr donor(capture1()); // Add a vendor option OptionBuffer orig = donor->data_; @@ -680,7 +680,7 @@ TEST_F(Pkt6Test, getName) { // relays can be parsed properly. See capture2() method description // for details regarding the packet. TEST_F(Pkt6Test, relayUnpack) { - boost::scoped_ptr msg(capture2()); + Pkt6Ptr msg(capture2()); EXPECT_NO_THROW(msg->unpack()); @@ -870,7 +870,7 @@ TEST_F(Pkt6Test, relayPack) { } TEST_F(Pkt6Test, getRelayOption) { - NakedPkt6Ptr msg(dynamic_cast(capture2())); + NakedPkt6Ptr msg(boost::dynamic_pointer_cast(capture2())); ASSERT_TRUE(msg); ASSERT_NO_THROW(msg->unpack());