>>>>> On Thu, 12 Jan 2012 13:14:28 +0100, Jan Safranek <jsafr...@redhat.com> >>>>> said:
JS> If the netsnmp_register_mib() function returns error, sometimes it frees JS> its reginfo argument (agent_registry.c:1136) and sometimes not JS> (agent_registry.c:1164). The caller does not know what to do and in most JS> cases frees reginfo again (e.g. hrSWInstalledTable.c:144 and :166). JS> I'd guess that netsnmp_register_mib() should not free its arguments, but JS> I want to know your opinion first - I don't dare to touch these parts of JS> agent without a review. Actually, it's fairly well documented in the code description above it that it is freed on failure. It's been that way since 2004. * @param reginfo Registration handler structure. * In a case of failure, it will be freed. The issue is that the line in question was changed (by me) from a hard assert() as orbert originally programmed it to a soft netsnmp_assert in my effort to get rid of most hard asserts as people had production daemons that stop. The right fix for that function, IMHO, is this: diff --git a/agent/agent_registry.c b/agent/agent_registry.c index 4333515..ab5de96 100644 --- a/agent/agent_registry.c +++ b/agent/agent_registry.c @@ -1161,7 +1161,9 @@ netsnmp_register_mib(const char *moduleName, snmp_log(LOG_WARNING,"context passed during registration does not " "equal the reginfo contextName! ('%s' != '%s')\n", context, reginfo->contextName); - netsnmp_assert(!"register context == reginfo->contextName"); /* always false */ + netsnmp_handler_registration_free(reginfo); + netsnmp_assert_or_return(!"register context == reginfo->contextName", + MIB_REGISTRATION_FAILED); /* always false */ } /* Create the new subtree node being registered. */ That will clean the pointer and then return a FAILURE. -- Wes Hardaker Please mail all replies to net-snmp-coders@lists.sourceforge.net ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders