From: Francis Dupont Date: Wed, 1 Jul 2026 16:20:13 +0000 (+0200) Subject: [#2260] Addressed (updated) second item X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d18fe21b471af56ab6facf655faf116d09c7aea;p=thirdparty%2Fkea.git [#2260] Addressed (updated) second item --- diff --git a/src/hooks/dhcp/lease_cmds/lease_cmds.cc b/src/hooks/dhcp/lease_cmds/lease_cmds.cc index f4552ebcb9..4b577addd2 100644 --- a/src/hooks/dhcp/lease_cmds/lease_cmds.cc +++ b/src/hooks/dhcp/lease_cmds/lease_cmds.cc @@ -1199,7 +1199,12 @@ LeaseCmdsImpl::leaseGetByClientIdHandler(CalloutHandle& handle) { isc_throw(BadValue, "'client-id' parameter must be a string"); } - ClientIdPtr clientid = ClientId::fromText(client_id->stringValue()); + ClientIdPtr clientid; + try { + clientid = ClientId::fromText(client_id->stringValue()); + } catch (const std::exception& ex) { + isc_throw(BadValue, "bad 'client-id' parameter: " << ex.what()); + } Lease4Collection leases = LeaseMgrFactory::instance().getLease4(*clientid); @@ -1249,7 +1254,12 @@ LeaseCmdsImpl::leaseGetByDuidHandler(CalloutHandle& handle) { isc_throw(BadValue, "'duid' parameter must be a string"); } - DUID duid_ = DUID::fromText(duid->stringValue()); + DUID duid_ = DUID::EMPTY(); + try { + duid_ = DUID::fromText(duid->stringValue()); + } catch (const std::exception& ex) { + isc_throw(BadValue, "bad 'duid' parameter: " << ex.what()); + } Lease6Collection leases = LeaseMgrFactory::instance().getLeases6(duid_); diff --git a/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds4_unittest.cc b/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds4_unittest.cc index 40c12c0fe1..0c2d7ddd64 100644 --- a/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds4_unittest.cc +++ b/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds4_unittest.cc @@ -2006,7 +2006,8 @@ void Lease4CmdsTest::testLease4GetByClientIdParams() { " \"client-id\": \"00::01:00:bc:0d:67\"\n" " }\n" "}"; - exp_rsp = "two consecutive separators (':') specified in a decoded string"; + exp_rsp = "bad 'client-id' parameter: "; + exp_rsp += "two consecutive separators (':') specified in a decoded string"; exp_rsp += " '00::01:00:bc:0d:67'"; testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp); } diff --git a/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds6_unittest.cc b/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds6_unittest.cc index 9fbe4a7bbb..a3f1c65211 100644 --- a/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds6_unittest.cc +++ b/src/hooks/dhcp/lease_cmds/libloadtests/lease_cmds6_unittest.cc @@ -2270,7 +2270,8 @@ void Lease6CmdsTest::testLease6GetByDuidParams() { " \"duid\": \"00::01:00:bc:0d:67\"\n" " }\n" "}"; - exp_rsp = "two consecutive separators (':') specified in a decoded string"; + exp_rsp = "bad 'duid' parameter: "; + exp_rsp += "two consecutive separators (':') specified in a decoded string"; exp_rsp += " '00::01:00:bc:0d:67'"; testCommand(cmd, CONTROL_RESULT_ERROR, exp_rsp); }