From: Shawn Routhier Date: Fri, 29 Jul 2016 04:15:36 +0000 (-0700) Subject: [v4_1_esv] When opening a connection, if the socket can't be bound close it. X-Git-Tag: v4_1_esv_r14b1~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c368df4e2045946ce95d77421a33867965aeb29f;p=thirdparty%2Fdhcp.git [v4_1_esv] When opening a connection, if the socket can't be bound close it. --- diff --git a/RELNOTES b/RELNOTES index 90b3706c6..22be8bb8c 100644 --- a/RELNOTES +++ b/RELNOTES @@ -98,6 +98,11 @@ by Eric Young (eay@cryptsoft.com). in line with the call it will make to malloc(). [ISC-Bugs #40843] +- If the failover socket can't be bound close it, otherwise if the + user configures an incorrect address in the failover stanza the + server will continue to open new sockets every 90 seconds until + it runs out. + [ISC-Bugs #42452] Changes since 4.1-ESV-R13b1 diff --git a/omapip/connection.c b/omapip/connection.c index 990430db8..9ab06bea5 100644 --- a/omapip/connection.c +++ b/omapip/connection.c @@ -151,6 +151,7 @@ isc_result_t omapi_connect_list (omapi_object_t *c, if (local_addr) { /* Only do TCPv4 so far. */ if (local_addr -> addrtype != AF_INET) { + close(obj->socket); omapi_connection_dereference (&obj, MDL); return ISC_R_INVALIDARG; } @@ -169,6 +170,7 @@ isc_result_t omapi_connect_list (omapi_object_t *c, sizeof local_sin) < 0) { omapi_connection_object_t **objp = &obj; omapi_object_t **o = (omapi_object_t **)objp; + close(obj->socket); omapi_object_dereference(o, MDL); if (errno == EADDRINUSE) return ISC_R_ADDRINUSE;