17812413 net-snmp 5.4.1 dumps core when snmpd.conf contains an incorrect logmatch param.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/040.17812413.logmatch_free.patch Thu Mar 20 18:12:09 2014 -0700
@@ -0,0 +1,33 @@
+# This patch has been submitted upstream. But it has not been accepted yet.
+
+--- a/agent/mibgroup/ucd-snmp/logmatch.c Thu Sep 14 17:48:50 2006
++++ b/agent/mibgroup/ucd-snmp/logmatch.c Wed Feb 5 23:56:38 2014
+@@ -118,8 +118,8 @@
+ */
+
+ for (i = 0; i < logmatchCount; i++) {
+-
+- regfree(&(logmatchTable[i].regexBuffer));
++ if (logmatchTable[i].myRegexError == 0)
++ regfree(&(logmatchTable[i].regexBuffer));
+ }
+ logmatchCount = 0;
+ }
+@@ -212,6 +212,17 @@
+ regcomp(&(logmatchTable[logmatchCount].regexBuffer),
+ logmatchTable[logmatchCount].regEx,
+ REG_EXTENDED | REG_NOSUB);
++ if (logmatchTable[logmatchCount].myRegexError)
++ {
++ char regexErrorString[100];
++ regerror(logmatchTable[logmatchCount].myRegexError,
++ &(logmatchTable[logmatchCount].regexBuffer),
++ regexErrorString, 100);
++ regexErrorString[99] = '\0';
++ snmp_log(LOG_ERR, "Could not process the logmatch regex - %s," \
++ "\n since regcomp() failed with - %s\n",
++ logmatchTable[logmatchCount].regEx, regexErrorString);
++ }
+
+ if (logmatchTable[logmatchCount].frequency > 0) {
+ snmp_alarm_register(logmatchTable[logmatchCount].frequency,