Properly close omapi connection (#1523547)
This commit is contained in:
parent
e701b476ce
commit
956986ca88
52
dhcp-4.3.6-omapi-leak.patch
Normal file
52
dhcp-4.3.6-omapi-leak.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
commit ccff9ed69d0b26d33ce9cac8e83dab535b64d627
|
||||||
|
Author: Thomas Markwalder <tmark@isc.org>
|
||||||
|
Date: Tue Dec 5 15:12:34 2017 -0500
|
||||||
|
|
||||||
|
[46767] Plugged a socket descriptor leak in OMAPI
|
||||||
|
|
||||||
|
If disconnect is triggered by the reader closing the socket, while there
|
||||||
|
is data left to write, the socket would be orphaned.
|
||||||
|
|
||||||
|
omapip/buffer.c
|
||||||
|
omapi_connection_writea() - added logic to recall disconnect once
|
||||||
|
pending data has been written
|
||||||
|
|
||||||
|
omapip/message.c
|
||||||
|
Removed static declaration from omapi_message_unregister so you can
|
||||||
|
actually compile when DEBUG_PROTOCOL is defined.
|
||||||
|
|
||||||
|
Added a release note
|
||||||
|
|
||||||
|
diff --git a/omapip/buffer.c b/omapip/buffer.c
|
||||||
|
index 6e0621b..a21f0a8 100644
|
||||||
|
--- a/omapip/buffer.c
|
||||||
|
+++ b/omapip/buffer.c
|
||||||
|
@@ -565,6 +565,15 @@ isc_result_t omapi_connection_writer (omapi_object_t *h)
|
||||||
|
omapi_buffer_dereference (&buffer, MDL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* If we had data left to write when we're told to disconnect,
|
||||||
|
+ * we need recall disconnect, now that we're done writing.
|
||||||
|
+ * See rt46767. */
|
||||||
|
+ if (c->out_bytes == 0 && c->state == omapi_connection_disconnecting) {
|
||||||
|
+ omapi_disconnect (h, 1);
|
||||||
|
+ return ISC_R_SHUTTINGDOWN;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return ISC_R_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/omapip/message.c b/omapip/message.c
|
||||||
|
index ee15d82..37abbd2 100644
|
||||||
|
--- a/omapip/message.c
|
||||||
|
+++ b/omapip/message.c
|
||||||
|
@@ -339,7 +339,7 @@ isc_result_t omapi_message_unregister (omapi_object_t *mo)
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG_PROTOCOL
|
||||||
|
-static const char *omapi_message_op_name(int op) {
|
||||||
|
+const char *omapi_message_op_name(int op) {
|
||||||
|
switch (op) {
|
||||||
|
case OMAPI_OP_OPEN: return "OMAPI_OP_OPEN";
|
||||||
|
case OMAPI_OP_REFRESH: return "OMAPI_OP_REFRESH";
|
10
dhcp.spec
10
dhcp.spec
@ -20,7 +20,7 @@ Summary: Dynamic host configuration protocol software
|
|||||||
Name: dhcp
|
Name: dhcp
|
||||||
Version: 4.3.6
|
Version: 4.3.6
|
||||||
%global VERSION %%{version}%%{prever}
|
%global VERSION %%{version}%%{prever}
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
||||||
# dcantrell maintaining the package) made incorrect use of the epoch and
|
# dcantrell maintaining the package) made incorrect use of the epoch and
|
||||||
# that's why it is at 12 now. It should have never been used, but it was.
|
# that's why it is at 12 now. It should have never been used, but it was.
|
||||||
@ -77,6 +77,7 @@ Patch36: dhcp-option97-pxe-client-id.patch
|
|||||||
Patch37: dhcp-stateless-DUID-LLT.patch
|
Patch37: dhcp-stateless-DUID-LLT.patch
|
||||||
Patch38: dhcp-dhclient-preinit6s.patch
|
Patch38: dhcp-dhclient-preinit6s.patch
|
||||||
Patch39: dhcp-handle_ctx_signals.patch
|
Patch39: dhcp-handle_ctx_signals.patch
|
||||||
|
Patch40: dhcp-4.3.6-omapi-leak.patch
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
@ -339,6 +340,10 @@ rm bind/bind.tar.gz
|
|||||||
# add signal handlers for proper work with share context
|
# add signal handlers for proper work with share context
|
||||||
%patch39 -p1 -b .signals
|
%patch39 -p1 -b .signals
|
||||||
|
|
||||||
|
# close omapi socker descriptions properly
|
||||||
|
# https://bugzilla.redhat.com/1523547
|
||||||
|
%patch40 -p1 -b .omapi-leak
|
||||||
|
|
||||||
# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
|
# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=656610
|
# https://bugzilla.gnome.org/show_bug.cgi?id=656610
|
||||||
sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h
|
sed -i -e 's|DHCLIENT_DEFAULT_PREFIX_LEN 64|DHCLIENT_DEFAULT_PREFIX_LEN 128|g' includes/site.h
|
||||||
@ -665,6 +670,9 @@ done
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 8 2017 Pavel Zhukov <pzhukov@redhat.com> - 12:4.3.6-8
|
||||||
|
- Fix omapi SD leak (#1523547)
|
||||||
|
|
||||||
* Thu Nov 9 2017 Pavel Zhukov <pzhukov@redhat.com> - 12:4.3.6-7
|
* Thu Nov 9 2017 Pavel Zhukov <pzhukov@redhat.com> - 12:4.3.6-7
|
||||||
- Add patch for proper signal handling with shared context (#1457871)
|
- Add patch for proper signal handling with shared context (#1457871)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user