From f1982bb487b82c4f77ac1db8f3899c009263ec74 Mon Sep 17 00:00:00 2001 From: Tomek Mrugalski Date: Mon, 17 Aug 2015 20:49:39 +0200 Subject: [PATCH] [support8785] std::exception, not just isc::Exception is caught If std::exception would be thrown anywhere in message processing in Dhcp4Srv::run(), we would not catch it. In principle, that should never happen, as the Kea code only throws isc::Exception derivatives, but maybe some of the system or boost calls could throw std::exception. --- src/bin/dhcp4/dhcp4_srv.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc index b9de44a946..f3ad0ca97e 100644 --- a/src/bin/dhcp4/dhcp4_srv.cc +++ b/src/bin/dhcp4/dhcp4_srv.cc @@ -617,11 +617,12 @@ Dhcpv4Srv::run() { // "switch" statement. ; } - } catch (const isc::Exception& e) { + } catch (const std::exception& e) { - // Catch-all exception (at least for ones based on the isc Exception - // class, which covers more or less all that are explicitly raised - // in the Kea code). Just log the problem and ignore the packet. + // Catch-all exception (we used to call only isc::Exception, but + // std::exception could potentially be raised and if we don't catch + // it here, it would be caught in main() and the process would + // terminate). Just log the problem and ignore the packet. // (The problem is logged as a debug message because debug is // disabled by default - it prevents a DDOS attack based on the // sending of problem packets.)