diff options
author | Hideki Yamane <henrich@debian.org> | 2014-03-03 20:30:53 +0900 |
---|---|---|
committer | Hideki Yamane <henrich@debian.org> | 2014-03-03 20:30:53 +0900 |
commit | 3de0e471f655b1479a796cc7fd9d3e14779bc98c (patch) | |
tree | 7735df5ef737fe4b475339e5bb21f07395ced36f | |
parent | ead2150ceaa87bcd59adb5bfe0b8ba2fff1203f6 (diff) | |
download | pkg-net-snmp-3de0e471f655b1479a796cc7fd9d3e14779bc98c.tar.gz |
patch taken from Fedora
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | debian/patches/agentx-crash.patch | 62 | ||||
-rw-r--r-- | debian/patches/series | 1 |
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 |