summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHideki Yamane <henrich@debian.org>2014-03-03 20:30:53 +0900
committerHideki Yamane <henrich@debian.org>2014-03-03 20:30:53 +0900
commit3de0e471f655b1479a796cc7fd9d3e14779bc98c (patch)
tree7735df5ef737fe4b475339e5bb21f07395ced36f
parentead2150ceaa87bcd59adb5bfe0b8ba2fff1203f6 (diff)
downloadpkg-net-snmp-3de0e471f655b1479a796cc7fd9d3e14779bc98c.tar.gz
patch taken from Fedora
-rw-r--r--debian/changelog1
-rw-r--r--debian/patches/agentx-crash.patch62
-rw-r--r--debian/patches/series1
3 files changed, 64 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index b15781f..6d3e937 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ net-snmp (5.7.2~dfsg-9) UNRELEASED; urgency=medium
* debian/patches
- add add_rocommunity6.patch to fix snmpwalk using ipv6 (Closes: #717179)
- add fix_manpage-has-errors-from-man.patch
+ - add agentx-crash.patch, taken from Fedora package.
* debian/control
- set Standards-Version: 3.9.5
* debian/libsnmp-dev.install
diff --git a/debian/patches/agentx-crash.patch b/debian/patches/agentx-crash.patch
new file mode 100644
index 0000000..00988cc
--- /dev/null
+++ b/debian/patches/agentx-crash.patch
@@ -0,0 +1,62 @@
+Description: fix snmpd crash via AgentX connection
+
+ taken from Fedora, net-snmp-5.7-agentx-crash.patch
+
+bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix
+bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out
+
+commit f9304c83f76202db0e684269ca1af32e43cd9db4
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date: Tue Feb 7 14:53:44 2012 +0100
+
+ CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent disconnect in the middle of processing of a request.
+
+ I fixed also the memory leak reported in the tracker comments.
+
+
+Origin: vendor
+Forwarded: not-needed
+Last-Update: <YYYY-MM-DD>
+
+--- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/agentx/master.c
++++ net-snmp-5.7.2~dfsg/agent/mibgroup/agentx/master.c
+@@ -219,6 +219,9 @@ agentx_got_response(int operation,
+ if (!cache) {
+ DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
+ session));
++ /* response is too late, free the cache */
++ if (magic)
++ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
+ return 0;
+ }
+ requests = cache->requests;
+@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handle
+ result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
+ if (result == 0) {
+ snmp_free_pdu(pdu);
++ if (cb_data)
++ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
+ }
+
+ return SNMP_ERR_NOERROR;
+--- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/agentx/master_admin.c
++++ net-snmp-5.7.2~dfsg/agent/mibgroup/agentx/master_admin.c
+@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * s
+ * requests, so that the delegated request will be completed and
+ * further requests can be processed
+ */
+- netsnmp_remove_delegated_requests_for_session(session);
++ while (netsnmp_remove_delegated_requests_for_session(session)) {
++ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n"));
++ }
++
+ if (session->subsession != NULL) {
+ netsnmp_session *subsession = session->subsession;
+ for(; subsession; subsession = subsession->next) {
+- netsnmp_remove_delegated_requests_for_session(subsession);
++ while (netsnmp_remove_delegated_requests_for_session(subsession)) {
++ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n"));
++ }
+ }
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index 0cff5f9..5824dcd 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -21,3 +21,4 @@ after_RFC5378
fix_manpage-has-errors_break_line.patch
add_rocommunity6.patch
fix_manpage-has-errors-from-man.patch
+agentx-crash.patch